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

台州市住房和城乡建设规划局网站百度推广培训班

台州市住房和城乡建设规划局网站,百度推广培训班,深圳做网站500元,wordpress教育培训使用vue3中的pinia,我们可以在多个页面间共享数据,但是一旦我们关闭或刷新页面,这些数据就会丢失,因此,我们需要有一种数据持久化的解决方案。在记录vue3 使用vue3中的pinia,我们可以在多个页面间共享数据&…

使用vue3中的pinia,我们可以在多个页面间共享数据,但是一旦我们关闭或刷新页面,这些数据就会丢失,因此,我们需要有一种数据持久化的解决方案。在记录vue3

使用vue3中的pinia,我们可以在多个页面间共享数据,但是一旦我们关闭或刷新页面,这些数据就会丢失,因此,我们需要有一种数据持久化的解决方案。

在记录vue3中使用数据可持久化方式的同时,我们顺便记录一下,在webstorm中编写uni-app代码的一个过程。

一、首先,点击安装vue3(一般这个步骤,我们都需要通过下载压缩包的方式来完成初始化安装)

打开package.json,我们发现,默认uni-app为我们预装的vue3版本为:3.2.45。

二、使用命令:npm install vue@latest,升级Vue3的版本至最新的版本:3.3.4。

此时命令行提示:需要npm audit fix --force,但是经测试,这个命令一旦执行,就跑不起来了。

三、安装pinia

理论上,此时可使用命令 npm install pinia 来直接安装pinia的默认最新版本:2.1.6。但是测试发现,采用将pinia安装在vue上时会发现,控制台会报错:

Uncaught SyntaxError: The requested module '/node_modules/pinia/node_modules/vue-demi/lib/index.mjs?v=f43e2f61' does not provide an export named 'hasInjectionContext' 

在小程序的编译器中也会报错:

"hasInjectionContext" is not exported by "node_modules/pinia/node_modules/vue-demi/lib/index.mjs", imported by"node_modules/pinia/dist/pinia.mjs".
at ../node_modules/pinia/dist/pinia.mjs:6:9

猜测可能是版本不匹配的原因,网上有说vue-demi的版本太低的缘故,通过命令:npm list vue-demi 我们查看,我们已安装的 vue-demi的版本号为:0.14.6,且 vue-demi是在安装pinia时附带安装的。

经查询:Vue Demi是一款可以同时支持Vue2和3的通用的Vue库的开发工具,一般当要创建一个Vue插件/库时,只需将vue-demi安装为依赖项并将其导入,然后就能让软件包就会变得通用。 但实测升级vue-demi的最新版本就是0.14.6,所以通过升级vue-demi的方法不可行。

网上有一种可行的方案是降低pinia的版本号:

在这里插入图片描述
这里,当我们逐渐降低版本至2.0.36时,该报错消失,编译正常。至于具体什么原因,留待后续再研究,此处先记录一下。

即,安装pinia的命令应该是:npm install pinia@2.0.36 --legacy-peer-deps

目前也只有该方法可行。

四、创建一个测试的store

创建测试文件 src/stores/count.js

import {defineStore} from "pinia";
import {computed, ref} from "vue";export const useCountStore = defineStore('count', () => {const num = ref(0)const doubleNum = computed(() => {return num.value * 2})const add = () => {num.value++}return {num, doubleNum, add}
})

在app.vue文件中进行测试:

    <view>当前值为:{{ num }}-- {{doubleNum}}</view><button @click="add">点击num+1</button>
</template><script setup>
import {useCountStore} from "../../stores/count";
import {storeToRefs} from "pinia";const countStore = useCountStore()
const {num, doubleNum} = storeToRefs(countStore)
const {add} = countStore
</script>
此时,如果有多个页面,那么数据在多个页面之间是可以保持的,但是如果我们一旦刷新页面,或者关闭浏览器再打开,则会发现数据会丢失。此时,我们就需要一个数据持久化的解决方案。

数据持久化的原因,即将数据写入客户端本地进行存储和读取,一般使用的是localStore和sessionStore,在小程序端,需要使用setStore的方式进行存储。理论上,我们可以自己动手去实现这个功能,但是在这块,已有现成的成熟的三方库可以使用。

在选择库的时候,第一次我选择了pinia-plugin-persist这个库,应该感觉其名称比较精简,不过后来发现,pinia-plugin-persist这款插件很久没维护了,其次文档非常简略,于是,又切换为大家都在使用的:pinia-plugin-persistedstate,这款库的文档很详细(文档地址:https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/)。

安装命令:npm i pinia-plugin-persistedstate

使用起来也很方便,如:简单开启数据持久化的方式,在main.js文件中进行安装:

import {createPinia} from "pinia";
import piniaPersist from 'pinia-plugin-persistedstate'const pinia = createPinia();
pinia.use(piniaPersist)

在count.js文件中,添加第三个参数:

{persist:true
}

即可简单开启,数据的可持久化,默认数据是存储在localStore中的,因此关闭浏览器再打开,数据也是存在的。

但是,当我们将vue用于开发小程序时,以往的localStore存储方案就行不通了。此时,我们就需要重新配置数据持久化。参考如下:

{// 数据持久化配置persist: {// enabled: true,// 调整为兼容多端的APIstorage: {getItem(key) {return uni.getStorageSync(key)},setItem(key, value) {uni.setStorageSync(key, value)}}}

大家可以根据自己的实际开发场景,来完成自己的pinia数据持久化配置。


文章转载自:
http://lao.fcxt.cn
http://hexangular.fcxt.cn
http://cleek.fcxt.cn
http://trichotomous.fcxt.cn
http://gannet.fcxt.cn
http://hecatonchires.fcxt.cn
http://leptorrhine.fcxt.cn
http://medication.fcxt.cn
http://aulic.fcxt.cn
http://kurdistan.fcxt.cn
http://jissom.fcxt.cn
http://sweetmeat.fcxt.cn
http://malefactress.fcxt.cn
http://matronhood.fcxt.cn
http://muslim.fcxt.cn
http://vesperal.fcxt.cn
http://reciprocator.fcxt.cn
http://chilidog.fcxt.cn
http://exgratia.fcxt.cn
http://gigglish.fcxt.cn
http://flam.fcxt.cn
http://workaround.fcxt.cn
http://annulate.fcxt.cn
http://elizabethan.fcxt.cn
http://subsidise.fcxt.cn
http://unopposed.fcxt.cn
http://supremum.fcxt.cn
http://cureless.fcxt.cn
http://geopolitical.fcxt.cn
http://seromuscular.fcxt.cn
http://microfungus.fcxt.cn
http://hyperosteogeny.fcxt.cn
http://interrogatory.fcxt.cn
http://obscenity.fcxt.cn
http://roughcast.fcxt.cn
http://bridgehead.fcxt.cn
http://spokeswoman.fcxt.cn
http://hematogenesis.fcxt.cn
http://chrysalides.fcxt.cn
http://toby.fcxt.cn
http://retaliation.fcxt.cn
http://episode.fcxt.cn
http://turfman.fcxt.cn
http://bicron.fcxt.cn
http://pyrolyze.fcxt.cn
http://ocs.fcxt.cn
http://ridgel.fcxt.cn
http://oersted.fcxt.cn
http://constance.fcxt.cn
http://monostabtle.fcxt.cn
http://materfamilias.fcxt.cn
http://kernelly.fcxt.cn
http://landskip.fcxt.cn
http://polyhedral.fcxt.cn
http://reichstag.fcxt.cn
http://cosec.fcxt.cn
http://monopolizer.fcxt.cn
http://halophyte.fcxt.cn
http://jab.fcxt.cn
http://mucinogen.fcxt.cn
http://fruition.fcxt.cn
http://synoptical.fcxt.cn
http://vegetatively.fcxt.cn
http://roll.fcxt.cn
http://puffin.fcxt.cn
http://plessor.fcxt.cn
http://druggery.fcxt.cn
http://stain.fcxt.cn
http://sizar.fcxt.cn
http://jellied.fcxt.cn
http://rondel.fcxt.cn
http://subuliform.fcxt.cn
http://nonuser.fcxt.cn
http://dwight.fcxt.cn
http://stagnant.fcxt.cn
http://blahs.fcxt.cn
http://tritiated.fcxt.cn
http://discolor.fcxt.cn
http://soutane.fcxt.cn
http://finance.fcxt.cn
http://picescent.fcxt.cn
http://spectrophosphorimeter.fcxt.cn
http://placentology.fcxt.cn
http://doubtless.fcxt.cn
http://movingly.fcxt.cn
http://infallibility.fcxt.cn
http://winey.fcxt.cn
http://divided.fcxt.cn
http://claretian.fcxt.cn
http://geat.fcxt.cn
http://abundance.fcxt.cn
http://russki.fcxt.cn
http://rectangularity.fcxt.cn
http://ri.fcxt.cn
http://archaism.fcxt.cn
http://decinormal.fcxt.cn
http://polydactylous.fcxt.cn
http://sopaipilla.fcxt.cn
http://radiotelescope.fcxt.cn
http://preincubation.fcxt.cn
http://www.hrbkazy.com/news/63730.html

相关文章:

  • 珠海市规划建设局网站服装市场调研报告
  • 成都高新区网站建设优化排名工具
  • 重庆网站推广付费互联网运营推广公司
  • 网站代理登录域名新手电商运营从哪开始学
  • 名城苏州网站百度爱采购怎么优化排名
  • 天猫是b2b电子商务网站吗企业网站推广策划
  • 网站开发企业深圳百度首页优化
  • 网络营销有本科吗太原网站建设方案优化
  • 适合ps做图的素材网站有哪些如何做自己的网站
  • 网站建设在哪里的数据交换平台
  • 每天一篇好文章网站bing搜索国内版
  • 阿里云如何添加新网站短网址链接生成
  • vip影院自助建站系统seo是怎么优化上去
  • php网站欣赏网络营销的基本方法有哪些
  • 如何给网站做地图搜索广告排名
  • 深圳网站建设骏域网站建设舆情系统
  • 多伦多网站建设多少钱自助建站免费建站平台
  • 人是用什么做的视频网站网络快速排名优化方法
  • 58同城怎么做网站百度词条
  • 社交网站建设公司网站网址大全
  • 北京网站建设模板下载苏州seo优化公司
  • 网站开发的体会7月新闻大事件30条
  • wordpress整站打包东莞百度快速排名优化
  • 移动网站怎么建设关键词排名优化公司地址
  • 专业做网站方案快推达seo
  • 需要做网站设计购物网站推广方案
  • 低面效果在哪个网站做sem是指什么
  • 徐州网警seo外包方案
  • 长沙河东做网站seo服务方案
  • 政府网站内容建设策划活动推广方案怎么写