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

吉林华商建设集团网站江苏建设考试培训网

吉林华商建设集团网站,江苏建设考试培训网,平面设计能干到老吗,创网网站后台管理系统1.state state 就是我们要定义的数据, 如果定义 store 时传入的第二个参数是对象, 那么 state 需要是一个函数, 这个函数的返回值才是状态的初始值.这样设计的原因是为了让 Pinia 在客户端和服务端都可以工作 官方推荐使用箭头函数((){ })获得更好的类型推断 import { de…1.state state 就是我们要定义的数据, 如果定义 store 时传入的第二个参数是对象, 那么 state 需要是一个函数, 这个函数的返回值才是状态的初始值.这样设计的原因是为了让 Pinia 在客户端和服务端都可以工作 官方推荐使用箭头函数((){ })获得更好的类型推断 import { defineStore } from pinia;const userStore defineStore(user, {state: () {return {user: {name: tom,age: 18},color: red,userList: [],}} }) 2.TypeScript 可以定义 interface 来标记类型 import { defineStore } from pinia;interface UserInfo {name: string;age: number; }export const userStore defineStore(user, {state: () {return {color: red as string,userList: [] as UserInfo[],user: {name: tom,age: 18} as UserInfo | null}} }) 3.访问 state 默认可以直接通过 store 实例访问和修改 state. const user userStore(); function changeColor() {user.color black } function changeAge() {user.user.age; } 4.重置 state 调用 store 的 $reset() function resetStore() {user.$reset(); } 5.修改 state 除了直接通过 store 修改 state, 还可以调用 store 的 $patch 方法. 这个方法允许一次进行多处修改 function patchChange() {user.$patch({color: skyblue,user: {age: user.user.age 10}}) } 但是这种语法有时会很麻烦, 比如我们想要对数组进行增删时, 这种语法会要求创建一个新的数组. 所以 $patch 方法可以接收一个函数为参数. function patchChangeFunction() {user.$patch((state) {state.userList.push({ name: mike, age: 19 });state.user.age;state.color pink;}); } 也直接通过 store 的 $state 属性修改 state, 因为其内部会调用 $patch function stupidChange() {user.$state {color: hahha}// 实际上内部调用了// user.$patch({ color: hahha }) } 6.订阅状态 我们可以通过 store 的 $subscribe 方法侦听 state 的改变. 使用 $subscribe 而不是 watch() 的好处是 $subscribe 总是在 state 修改之后执行一次. user.$subscribe((mutation, state) {console.log(mutation, mutation); }) const stopSubscribeFunc user.$subscribe((mutation, state) {console.log(mutation, mutation);console.log(state, state); }) function stopSubscribe() {stopSubscribeFunc() } 如果在组件内调用 store.$subscribe(), 那么组件卸载时会自动清理定于, 除非将 detached 设置为 true user.$subscribe((mutation, state) {// do something... }, {detached: true }) 如果要实现保存数据到 localStorage, 可以使用 watch //main.js里 const pinia createPinia(); app.use(pinia);watch(pinia.state,(state) {console.log(state)localStorage.setItem(piniaState, JSON.stringify(state));},{deep: true,immediate: true} )
http://www.zqtcl.cn/news/201136/

相关文章:

  • 体彩网站开发网站建设备案流程图
  • 云南网站建设天度网页界面设计遵循的原则
  • dede多个网站怎么做wordpress+adsense主题
  • 如何做网站营销江苏网站建设系统服务
  • 公司网站需要备案网络设置怎么设置
  • 网站正在建设中中文模板廊坊网站优化
  • 8免费网站建站网页网站模板
  • 网站开发算法面试滨州建设工程备案网站
  • 扬州网站开发个人做美食视频网站
  • 网站建设属于技术服务吗关于网站建设
  • 网站建设推广好处西安工业设计公司
  • 深圳宝安p2p网站系统的建设百度广告联盟标识
  • 企业网站备案怎么填写东莞市场监督管理局官网
  • 网站建站网站91955内蒙古建设集团招聘信息网站
  • 巴中建设厅网站电话seo是网络优化吗
  • 中国做投资的网站做网站的公司怎么推广
  • 专业的广州微网站建设移动应用开发干什么的
  • 网站运营有什么用常熟智能网站开发
  • 如何组建做网站的团队绍兴网站建设推广
  • 资讯类响应式网站模板深圳网站建设培训机构
  • 电子商务网站功能设计3d动画制作过程
  • 随机网站生成器win7asp+sql server 2008做网站
  • 金本网站建设设计江苏建筑业网
  • 校园网站建设的作用淄博网站建设网站推广优化
  • 域名过期了怎么办怎么找回网站校友录网站开发设计
  • 医疗 企业 网站建设seo网络优化是什么工作
  • e时代速递搜索引擎网站建设aso关键词搜索优化
  • 产品单页营销型网站模板龙华网站建设深圳信科
  • 建网站平台要多少钱投资公司取名字大全
  • 建设网站需要哪些设备重庆本地建站