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

做质粒图谱的网站php快速建站系统

做质粒图谱的网站,php快速建站系统,搜索引擎推广方案,河南那家做网站实力强​​​​​​​状态管理 我们知道组件与组件之间可以传递信息#xff0c;那么我们就可以将一个信息作为组件的独立状态#xff08;例如#xff0c;单个组件的颜色#xff09;或者共有状态#xff08;例如#xff0c;多个组件是否显示#xff09;在组件之传递#xff0c…​​​​​​​状态管理 我们知道组件与组件之间可以传递信息那么我们就可以将一个信息作为组件的独立状态例如单个组件的颜色或者共有状态例如多个组件是否显示在组件之传递这样的话我们希望这个信息在所有组件中共享这样就可以监控所有组件的状态但是一般的信息传递方式想要在所有组件传递一个信息会形成一个复杂的关系网不利于管理且中间组件若产生异常这个关系网就会断裂整个网页的组件就会变的无法监控 所以我们需要一个工具来管理所有组件的状态他需要以下几点功能 1.能够注册一个全局状态store形成一个中间件让所有组件都能访问到 2.当这个全局状态被某一个组件影响改变时它能够让其他组件更新这个状态 3.将信息独立出来不因为一个组件错误产生全局错误 vuex和pinia vuex和pinia都是vue的状态管理工具它们的作用相同用法几乎没有区别但是pinia的结构更加简洁同时对Ts的兼容性更强。 vuex和pinia的核心 vuexpiniastate --- 状态信息state --- 状态信息getter --- 选择性的读取信息getter --- 选择性的读取信息mutation --- 可以执行同步操作action --- 可以执行同步和异步操作action --- 可以执行异步操作 返回一个mutation vuex和pinia的关系 Pinia 起源于一次探索 Vuex 下一个迭代的实验因此结合了 Vuex 5 核心团队讨论中的许多想法。最后我们意识到 Pinia 已经实现了我们在 Vuex 5 中想要的大部分功能所以决定将其作为新的推荐方案来代替 Vuex。 这两个工具相似度很高作用也一致当你熟练掌握其中一个时另一个也能够轻松使用这里我们还是使用pinia作为项目的状态管理器 pinia的基本使用 手动引入pinia 新建一个vue项目 npm create vuelatest 输入完项目名称后一路回车即可对于是否引入pinia的选项我们暂时不选则  这里我们在src的目录下新建一个文件夹store并在store下新建一个index.js然后删除components文件夹的原内容并新建两个vue文件 安装pinia包 npm install pinia 安装完成后可以在package中看到然后我们开始导入pinia main.js: import ./assets/main.cssimport { createApp } from vue import App from ./App.vue import { createPinia } from piniacreateApp(App).use(createPinia()).mount(#app) 导入完成后我们在index.js中配置pinia index.js: import {defineStore} from piniaexport const useStore defineStore(counter, {state: () {return {// 定义状态counter: 0}},// 定义计算属性getters: {// 定义计算属性getCounter: (state) {return state.counter5?state.counter:数据不足}},// 定义操作actions: {// 定义操作addCounter() {this.counter}}// 定义其他选项// ... }) 注意 第一个参数counter是返回store的一个标识在一个项目中我们可以新建多个store来表示多个状态每个状态都有一个标识第二个参数是一个对象里面包含了state定义状态可以返回多个值任意类型表示状态getter定义了一个属性运算的方法可以用来过滤数据只拿需要的数据外部使用这个方法时不带括号action定义了一个操作可以 是异步操作外部调用是要带括号 然后我们再对App.vue,myComA.vue,myComB.vue引入store中间件 App.vue, script setup import myComA from ./components/myComA.vue import myComB from ./components/myComB.vue import { useStore } from ./store/index.js const store useStore()/scripttemplatep{{ store.getCounter }}/pbutton clickstore.addCounter()counter {{ store.counter }}/buttonmyComA/myComB/ /template myComA.vue, script setup//组合式API import { useStore } from ../store/index const store useStore()/scripttemplatedivmyComA/divp{{ store.counter }}/p /template myComB.vue script setup//组合式API import { useStore } from ../store/index const store useStore()/scripttemplatedivmyComB/divp{{ store.counter }}/p /template 这里要注意import引入index文件的路径有所不同 完整这些后我们启动项目 npm run dev 点击一次按钮store的counter值就加一当这个值大于等于5时会在App.vue中显示出来否则显示数据不足App.vue,myComA.vue,myComB.vue  3个组件中均有显示说明3个组件都访问到了数据它们绑定了一个共同的信息即便我们移除了myComB.vue其他组件也没有受到影响 这样我们就为每个组件都设置了一个状态 系统引入pinia 掌握了手动引入pinia后我们可以再新建一个项目查看以下系统的pinia npm create vuelatest 我们可以看到它是有一个stores文件夹的同时再main.js,counter.js,package.json中也是有对应的配置的 我们可以观察到它的配置方式和我们手动配置的方式有所不同 其实这个pinia的配置类似于setup函数的结构有选择式风格和组合式风格这里采用的是组合式风格2者的效果是完全一致的可以自行对比两种方法 我们可以引入之前项目中App.vue,myComA.vue,myComB.vue  3个组件注意这里的方法和文件名称有所改变再启动项目查看 app.vue: script setup import myComA from ./components/myComA.vue import myComB from ./components/myComB.vue import { useCounterStore } from ./stores/counter.js const store useCounterStore()/scripttemplatep{{ store.doubleCount }}/pbutton clickstore.increment()counter {{ store.count }}/buttonmyComA/myComB/ /templatemyComA.vue: script setup//组合式API import { useCounterStore } from ../stores/counter.js const store useCounterStore()/scripttemplatedivmyComA/divp{{ store.count }}/p /templatemyComB.vue: script setup//组合式API import { useCounterStore } from ../stores/counter.js const store useCounterStore()/scripttemplatedivmyComB/divp{{ store.count }}/p /template npm run dev可以看到实现了状态共享在实际应用中我们使用系统引入pinia后可以自己手动的将pinia的相关文件调整成我们需要的结构 扩展:pinia数据持久化 登录状态的数据问题 pinia的状态共享功能最常见的使用就是登录状态的共享它可以保存当前页面的一个登录状态这样当你在登录页面登录成功后其他页面可以共享这个登录状态在一个页面退出登录后其他页面也能够共享这样网页就能区分用户和游客了。 但是pinia是基于内存实现的当你刷新页面后pinia保存的可共享数据就会刷新这样我们就需要重新登录我们希望用户登录后登录状态应该由网络请求返回的token一段有时间限制会过期的数据保存所以我们需要实现pinia的数据持久化让页面刷新后仍可以保留登录状态 实现数据持久化 想在浏览器内存下一串数据不会因为刷新而清空我们可以想到localStorage就有这个功能 pinia提供了一个插件基于localStorage实现了数据的缓存这样页面刷新后pinia会先从localStorage中读取数据一般是token验证用户的登录状态这样就不用反复登录了 pinia-plugin-persistedstate 安装插件快速开始 | pinia-plugin-persistedstate (prazdevs.github.io) npm i pinia-plugin-persistedstate 安装完成后可以在package.json中查看  注册插件 在main.js中注册引入 import { createApp } from vue import { createPinia } from pinia import {piniaPluginPersistedstate} from pinia-plugin-persistedstateconst app createApp(App) const pinia createPinia() pinia.use(piniaPluginPersistedstate)app.use(pinia) app.mount(#app)在store下创建pinia对象的文件内启用插件 import { ref, computed } from vue import { defineStore } from piniaexport const useCounterStore defineStore(counter, () {const count ref(0)const doubleCount computed(() count.value * 2)function increment() {count.value}return { count, doubleCount, increment }},{persist: true,//开启路由缓存}, )App.vue script setup import {useCounterStore} from /stores/counterconst {count,increment} useCounterStore(); increment();//action方法使用pinia的数据 console.log(count); /script template/template style scoped/style 这个counter存储的数据就会被保留在本地了 这样每次打开执行这个自增的 方法时会先从原来保存的数据执行而不会因为刷新内存丢失掉数据从0开始执行 总结 pinia是一个状态管理工具它可以保存一个状态数据和一些方法提供给给全局的组件共享。简单来说pinia可以设置全局的响应量和方法所有组件都可以访问到这些响应量和方法并产生对应的变化
http://www.zqtcl.cn/news/269324/

相关文章:

  • wordpress gif主题seo兼职怎么收费
  • 商城免费建站系统手机端首页尺寸多少
  • 网站上存储播放视频怎么做wordpress 作品集 相册
  • 建设网工程信息南昌官网seo厂家
  • 上海网站seo牛巨微网页设计模板html代码个人介绍
  • 网站 架构 设计公司网站建设费怎么做账
  • 合肥电脑网站建站萍乡手机网站建设
  • 优化seo网站西安wordpress 做购物网站
  • 广州建设档案馆网站稿定设计app免费版官方
  • 橙色企业网站源码建设工程投标文件在哪个网站有发布
  • 服务器可以做网站吗深圳高端网站建设创新
  • 企业平台网站建设方案大连网络广告
  • 如何给网站做宣传新手怎么建立自己网站
  • 酒店和网站对接如何做开发网站那个好
  • 北京建设信源咨询有限公司网站快对小程序入口
  • 湖北人工智能建站系统软件城乡建设官网
  • 广东模板建站平台设计网站
  • 晋江市住房和城乡建设网站二进制可以做网站是吗
  • 企业网站优化的方式网站开发 -(广告)
  • 素材解析网站搭建wordpress 提问
  • 域名解析网站安卓android系统下载
  • 相亲网站做推广的照片是谁广告优化师前景
  • 营销导向的网站建设的主要流程陕煤建设集团网站
  • 电商网站销售数据分析网页美工设计实训报告
  • 百度新网站收录wordpress免刷新插件
  • 如何做好网站外链c#+开发网站开发
  • 展示型网站报价网站目录创建下载链接
  • cloudflare做侵权网站建设网站需要什么知识
  • 软装设计公司名称怎样给网站做优化
  • 如何判断网站是用什么程序做的云南网站建设公司