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

湘西泸溪网站建设做soho外贸网站

湘西泸溪网站建设,做soho外贸网站,微信商城小程序开发教程,网站的三种基本类型解释一下pinia: Pinia是一个基于Vue3的状态管理库,它提供了类似Vuex的功能,但是更加轻量化和简单易用。Pinia的核心思想是将所有状态存储在单个store中,并且将store的行为和数据暴露为可响应的API,从而实现数据&#…

解释一下pinia:

Pinia是一个基于Vue3的状态管理库,它提供了类似Vuex的功能,但是更加轻量化和简单易用。Pinia的核心思想是将所有状态存储在单个store中,并且将store的行为和数据暴露为可响应的API,从而实现数据(或方法)在各个组件之间的共享和修改;

1、新建一个vue3项目,并导入pinia的依赖:

npm install pinia

2、在main.ts中引入pinia:

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

3、在src目录下,新建一个stores文件夹。我们在这个文件夹中进行pinia的使用;

新建一个counter.ts文件,在这个文件中定义一个变量count,使这个count变量能被所有的组件共享,并修改其值;

countrt.ts的代码如下:

import { ref } from 'vue'
import { defineStore } from 'pinia'export const useCounterStore = defineStore('counter', () => {const count = ref(0)
// 定义一个方法,直接清空count
const clearCount = () => {
count.value=0
}return { count,clearCount}
})

解释一下:

defineStore :是pinia使用中必须要引入的一个函数,它是用于定义一个新的store的函数。

在Pinia中,每个store都需要使用defineStore函数进行定义,并传入一个配置对象来描述store的行为和数据。

defineStore 一般要传递两个参数,第一个是store函数的名称,一般这个名称要做到见名知义、第二个是这个store函数的具体逻辑。

可以在这里面定义属性、方法等。但是这些定义过的属性和方法一定要通过return交出去才行

如上图,我们顶义一个count变量,并通过return返回了出去。那么现在就可以在任意组件中查看count的值,并进行修改了。

4、使用pinia:

要在组件中使用pinia定义的store函数,第一步是要先引入store:


import { useCounterStore } from '@/stores/counter';

第二步,定义一个参数来接收这个useCounterStore函数:

const counterStore = useCounterStore();

第三步,直接在需要的位置引入counterStore中的参数即可

(可以是属性,也可以是方法。但是有一点要注意,就是必须要是return交出去的才可以;)

从pinia中取到的数据{{ counterStore.count }}

 <button @click="counterStore.clearCount">清空count</button>

属性或者方法都可以直接使用,只要你在return中交出去了

启动vue3项目,查看

可以看到确实能获取到pinia中定义的数据count;

如果想要修改count,可以直接在数值上修改:
 

const addCount = () => {

counterStore.count++;

}

定义一个按钮,并绑定事件:修改结果如图:

这个修改是全局的,你在另一个组件中也可以观察到pinia中数据的变化:

但是pinia有一个不好的地方就是它默认是内存存储,你只要一刷新浏览器就会丢失数据。

我们这时候可以借助pinia的持久化插件persist来解决;

1、下载persist持久化插件:

npm install pinia-plugin-persistedstate

2、在pinia中使用persist

import './assets/main.css'import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
import router from './router'
// 1、pinia的持久化插件
import { createPersistedState } from 'pinia-plugin-persistedstate'const app = createApp(App)//2、 接收createPersistedState函数
const piniaPersistedState = createPersistedState()const pinia = createPinia()
// 3、在pinia中引入持久化插件
pinia.use(piniaPersistedState)app.use(pinia)
app.use(router)app.mount('#app')

3、在定义状态store的时候指定持久化配置参数:{persist:true}

import { ref } from 'vue'
import { defineStore } from 'pinia'export const useCounterStore = defineStore('counter', () => {const count = ref(0)
// 定义一个方法,直接清空count
const clearCount = () => {
count.value=0
}return { count,clearCount}
},
{persist: true})

引入了pinia的持久化插件之后,我们再刷新页面,那么piniade的store函数中的数据也就持久的保存了。

其实这个插件底层也是使用了localstorage,将数据存储到了浏览器中。

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

相关文章:

  • scala网站开发长沙事业单位招聘信息网
  • 网站打开速度影响因素哪个公司做网站推广最好
  • 云南城市建设职业学院网站淮安 网站建设
  • 寮步网站建设哪家好备案二级域名分发
  • 温州网站定制公司哪家好如何用ai给网站做logo
  • 用服务器ip做网站页面个人域名网站可以做企业站吗
  • 京东网站建设哪家好网站的发展前景
  • 建站网站怎么上传代码展示类网站cms
  • 个人建网站一般多少钱?企业网络安全设计方案
  • 在电脑上建设网站wordpress主题制作slider
  • 做基础网站主机要包头网站建设易通
  • 营销型网站建设公司哪里有湛江免费企业建站
  • 电商系统网站开发公司倒闭了员工怎么赔偿
  • 网站的功能包括哪些内容编写html的软件
  • 自己的网站怎么做跳转济南网站制作公司哪家技术好
  • 网站建站wordpress长三角旅游推广联盟
  • 成都网站建设制作价格外包服务管理制度
  • 网站有哪些费用多少钱网站开发技术包括什么
  • 网站优化月总结wordpress修改地址
  • 台州网站开发公司网站设计公司建设
  • 网页设计制作网站代码html建一个收费网站
  • 漯河商城网站建设网页游戏排行榜2020排行榜
  • 建设系统网站全名旅行社网站制作
  • 网站目录新乐市做网站
  • 做购物网站骗人北京全网推广
  • 有的网站域名解析错误网站建设项目延期验收申请
  • 有什么建设网站的书籍Wordpress怎么设置维护
  • 网站维护员招聘怎么盗用网站
  • 源码做网站教程襄阳建设21网站
  • 上海网站开发售后服务网站打开速度规定多长时间