当前位置: 首页 > news >正文

网站开发的实例教程网站开发的技术有

网站开发的实例教程,网站开发的技术有,goodstore wordpress,网站添加验证码系列文章目录 第八章 Pinia 文章目录 系列文章目录前言一、安装和配置:二、基本使用三、一个更真实的例子 前言 Pinia是Vue.js应用程序的状态管理库。它提供了一种简单,轻量级的解决方案,用于在Vue应用程序中管理和维护状态。Pinia库的特点…

系列文章目录

第八章 Pinia


文章目录

  • 系列文章目录
  • 前言
  • 一、安装和配置:
  • 二、基本使用
  • 三、一个更真实的例子


前言

Pinia是Vue.js应用程序的状态管理库。它提供了一种简单,轻量级的解决方案,用于在Vue应用程序中管理和维护状态。Pinia库的特点是易于使用和集成,可以使开发者在不牺牲性能的情况下更有效地处理和维护状态。pinia中有三个概念,分别是:state、getter、action,对应于Vue组件中的:data、computed、methods。


一、安装和配置:

安装:通过命令:npm install pinia@2.1.7 ,或者在创建vue项目的时候勾选使用Pinia。
配置:在main.js中,需要创建pinia对象,并与app对象进行绑定,示例代码如下:

import { createApp } from 'vue'
import { createPinia } from 'pinia'import App from './App.vue'const app = createApp(App)
app.use(createPinia())
app.mount('#app')

二、基本使用

通常在src目录下创建一个stores文件夹,然后在里面按需创建js文件。假设要创建一个用于管理counter全局变量的库文件,那么可以创建counter.js文件,然后填入以下代码:

import { defineStore } from 'pinia'export const useCounterStore = defineStore('counter', () => {const count = ref(0)function increment() {count.value++}return { count, increment }
})

或者使用选项式API:

import { defineStore } from 'pinia'export const useCounterStore = defineStore('counter', {state: () => {return { count: 0 }},// 也可以这样定义// state: () => ({ count: 0 })actions: {increment() {this.count++},},
})

这样就定义好了一个count变量,以后在组件中可以通过以下三种方式修改:

<script setup>
import { useCounterStore } from '@/stores/counter'
const counterStore = useCounterStore()
// 1. 直接修改
counterStore.count++
// 2. 使用$patch批量修改
counterStore.$patch({ count: counterStore.count + 1 })
// 3. 使用action修改
counterStore.increment()
</script>
<template><!-- 直接从 store 中访问 state --><div>Current Count: {{ counter.count }}</div>
</template>

以上三种修改方式的应用场景如下:

  1. 如果只要修改一个状态变量,并且不需要额外的操作,那么推荐使用第一种方法。
  2. 如果要一次性修改多个状态变量,那么推荐使用$patch方法,效率更高。
  3. 如果在修改状态变量的同时要做一些额外的操作,那么推荐第三种方法。

三、一个更真实的例子

import { defineStore } from 'pinia'
export const useTodos = defineStore('todos', {state: () => ({/** @type {{ text: string, id: number, isFinished: boolean }[]} */todos: [],/** @type {'all' | 'finished' | 'unfinished'} */filter: 'all',// 类型将自动推断为 numbernextId: 0,}),getters: {finishedTodos(state) {return state.todos.filter((todo) => todo.isFinished)},unfinishedTodos(state) {return state.todos.filter((todo) => !todo.isFinished)},/*** @returns {{ text: string, id: number, isFinished: boolean }[]}*/filteredTodos(state) {if (this.filter === 'finished') {// 调用其他带有自动补全的 getters ✨return this.finishedTodos} else if (this.filter === 'unfinished') {return this.unfinishedTodos}return this.todos},},actions: {// 接受任何数量的参数,返回一个 Promise 或不返回addTodo(text) {// 你可以直接变更该状态this.todos.push({ text, id: this.nextId++, isFinished: false })},},
})

http://www.yayakq.cn/news/200963/

相关文章:

  • 网络营销推广计划书淄博seo费用
  • 毕业设计心理评测网站开发网站的专业
  • 当铺网站建设方案网站模板 婴儿
  • 主流门户网站有哪些定制做网站服务
  • dede 网站源码301 wordpress
  • 舟山大昌建设集团网站仿牌网站服务器
  • 网站开发排期表模板在线设计房屋效果图
  • 网站建设会出现的问题潍柴新建站登录网址
  • 有那些专门做职业统计的网站phpcms v9网站地图
  • 大兴网站开发网站建设咨询甘肃建设局网站首页
  • 湖南营销型网站建设 j磐石网络长链接转化成短链接工具
  • 长沙做痔疮东大医院L网站无锡住房和城乡建设局网站
  • 毕业设计做网站还是系统好网站建设的税率是多少
  • 做3d图的网站营销网站结构图
  • 微信公众号网站怎么做宁波最专业的seo公司
  • 果洛电子商务网站建设哪家快小地方做外卖网站怎样
  • 物流信息网站cms中国能源建设集团招聘网站
  • 老薛主机做两个网站招聘网站有哪些
  • 法律行业网站建设关于网络营销的网站
  • 怎样申请做c c 网站南昌高端网站定制
  • 制作网站一般多少钱现在装宽带多少钱
  • 网站排名影响因素网站合作流程
  • 亚马逊网站链接wordpress装饰公司主题
  • 财经资讯网站该怎么做推广wordpress支持手机吗
  • 网站开发工程师公司小型企业oa办公系统
  • 溧水114网站开发简述建设一个网站的具体过程
  • 做网站需要编程吗英德市住房城乡建设网站
  • 企业建设网站有哪些怎么在360自己做网站吗
  • 网站建设毕业报告拜年图片制作
  • 全景网站如何做wordpress最火模板