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

百度app智能小程序seo关键词排名优化矩阵系统

百度app智能小程序,seo关键词排名优化矩阵系统,网站是否有备案,网站关键词热度本文承接上一篇Vue3 中使用 Vuex 和 Pinia 对比之 Vuex的用法 与Vuex 相比#xff0c;如果你觉得 Vuex 比较麻烦的话#xff0c;那么Pinia提供了更简单的 API#xff0c;具有更少的操作#xff0c;简单理解一下#xff0c;就是相当于把 Vuex 的 mutation 和 action 融成了… 本文承接上一篇Vue3 中使用 Vuex 和 Pinia 对比之 Vuex的用法 与Vuex 相比如果你觉得 Vuex 比较麻烦的话那么Pinia提供了更简单的 API具有更少的操作简单理解一下就是相当于把 Vuex 的 mutation 和 action 融成了一个也就是说比无需像 Vuex 要考虑异步任务Pinia 让你直接异步请求操作修改数据状态。 Pinia发音为 /piːnjʌ/类似于英语中的“peenya”是最接近有效包名 piña西班牙语中的_pineapple_的词。 菠萝实际上是一组单独的花朵它们结合在一起形成多个水果。 Pinia 最初是为了探索 Vuex 的下一次迭代会是什么样子结合了 Vuex 5 核心团队讨论中的许多想法。最终Pinia 团队意识到 Pinia 已经实现了在 Vuex 5 中想要的大部分内容并决定实现它 取而代之的是新的建议。 与 Vuex 相比Pinia 提供了一个更简单的 API具有更少的规范提供了 Composition-API 风格的 API最重要的是在与 TypeScript 一起使用时具有可靠的类型推断支持。 Pinia API 与 Vuex ≤4 有很大不同 支持多Store最大的不同是 Vuex 是单例的只有一个 store 而 Pinia 有多个 storePinia中 mutations 不再存在。最初带来了 devtools 集成但这不再是问题Pinia 已被devtool 支持了。store 的 action 被调度为常规的函数调用而不是使用 dispatch 方法或 MapAction 辅助函数无需创建自定义复杂包装器来支持 TypeScript所有内容都是类型化的并且 API 的设计方式尽可能利用 TS 类型推断。不再需要注入、导入函数、调用函数、享受自动完成功能无需动态添加 Store默认情况下它们都是动态的您仍然可以随时手动使用 Store 进行注册但因为它是自动的。不再有 modules 的嵌套结构。您仍然可以通过在另一个 Store 中导入和 使用 来隐式嵌套 Store但 Pinia 通过设计提供平面结构同时仍然支持 Store 之间的交叉组合方式。 您甚至可以拥有 Store 的循环依赖关系。没有 命名空间模块。鉴于 Store 的扁平架构“命名空间” Store 是其定义方式所固有的您可以说所有 Store 都是命名空间的。 Pinia 的核心概念 State - 等效于 Vuex 中的 StateGetters - 等效于 Vuex 中的 GettersActions - 等效于 Vuex 中的 Actions mutations Pinia 的使用 第一步安装 Pinia yarn add pinia # 或者使用 npm npm install pinia第二步定义一个 Store import { defineStore } from pinia// useStore 可以是 useUser、useCart 之类的任何东西 // 第一个参数是应用程序中 store 的唯一 id export const useStore defineStore(test1, {// other options... })上面的 ‘test1’ 这个 name也称为 id是必要的Pinia 使用它来将 store 连接到 devtools。 将返回的函数命名为 use… 是跨可组合项的约定以使其符合你的使用习惯。 第三步 使用 store 上面我们仅仅是定义了一个 store在 setup() 中调用 useStore() 之前不会创建 store import { useStore } from /stores/counterexport default {setup() {const store useStore()return {// 您可以返回整个 store 实例以在模板中使用它store,}}, }一旦 store 被实例化你就可以直接在 store 上访问 state、getters 和 actions 中定义的任何属性。 注意事项store 是一个用reactive 包裹的对象这意味着不需要在getter 之后写.value但是就像setup 中的props 一样我们不能对其进行解构 export default defineComponent({setup() {const store useStore()// ❌ 这不起作用因为它会破坏响应式// 这和从 props 解构是一样的const { name, doubleCount } storename // eduardodoubleCount // 2return {// 一直会是 eduardoname,// 一直会是 2doubleCount,// 这将是响应式的doubleValue: computed(() store.doubleCount),}}, })为了从 Store 中提取属性同时保持其响应式需要使用storeToRefs()。 它将为任何响应式属性创建 refs。 当仅使用 store 中的状态但不调用任何操作时可以这样使用 import { storeToRefs } from piniaexport default defineComponent({setup() {const store useStore()// name 和 doubleCount 是响应式引用// 这也会为插件添加的属性创建引用// 但跳过任何 action 或 非响应式不是 ref/reactive的属性const { name, doubleCount } storeToRefs(store)return {name,doubleCount}}, })访问 state 默认情况下可以通过 store 实例访问状态来直接读取和写入状态 const store useStore() store.counter重置状态值为初始值 可以通过调用 store 上的 $reset() 方法将状态 重置 到其初始值 const store useStore() store.$reset()访问 getter getter 同 Vuex 一样它也等效于 Vue 的 computed 计算属性和 state 一样直接调用即可 export const useStore defineStore(main, {state: () ({counter: 0,}),getters: {doubleCount: (state) state.counter * 2,}, })//在页面中使用 const store useStore(); console.log(store.doubleCount);getter 中是可以互相嵌套访问的比如 getters 中有 getA 和 getB getters:{getA:(state)state.counter *2,getB(){//需要使用 getA 那么这个函数就不要用 箭头函数了普通函数通过 this 直接拿到 getAreturn this.getA 1;} }getter 传参 Getters 只是幕后的 computed 属性因此无法向它们传递任何参数。 但是您可以从 getter 返回一个函数以接受任何参数 //定义 store export const useStore defineStore(main, {getters: {getUserById: (state) {return (userId) state.users.find((user) user.id userId)// 返回一个函数用以接收参数},}, })//------在组件中使用------ script export default {setup() {const store useStore()return { getUserById: store.getUserById }}, } /scripttemplatepUser 2: {{ getUserById(2) }}/p /templateActions Actions 相当于组件中的 methods。 它们可以使用 defineStore() 中的 actions 属性定义并且它们非常适合定义业务逻辑 export const useStore defineStore(main, {state: () ({counter: 0,}),actions: {increment() {this.counter},randomizeCounter() {this.counter Math.round(100 * Math.random())},}, })//在组件中使用时Actions 像 methods 一样被调用 export default defineComponent({setup() {const main useMainStore()// Actions 像 methods 一样被调用main.randomizeCounter()return {}}, }) 与 getters 一样操作可以通过 this 访问 whole store instance 并提供完整类型和自动完成支持。 与它们不同actions 可以是异步的可以在其中await 任何 API 调用甚至其他操作 import { mande } from mandeconst api mande(/api/users)export const useUsers defineStore(users, {state: () ({userData: null,// ...}),actions: {async registerUser(login, password) {try {this.userData await api.post({ login, password })showTooltip(Welcome back ${this.userData.name}!)} catch (error) {showTooltip(error)// 让表单组件显示错误return error}},}, })总结Vuex 和 Pinia 我该怎么选 个人觉得你喜欢哪个用哪个但是有如下对比供大家自行参考 名称优点缺点适用推荐场景Vuex1. 更加成熟2. 也是因为第一点所以它也更加稳定3. 更强大提供了一些高级功能比如中间件和插件使得它可以处理更加复杂的状态管理需求1. 学习成本高相对于Pinia 难一些 2. 相对来说比较繁琐概念比较复杂 3. 量级比较大包体积也大 1. 大型SPA项目2. 高复杂度且对 store 要求有更多功能和灵活性的开发者Pinia1. 轻量级体积小 约 1KB2. 简单易用3. 更灵活提供了多store ; 4. 允许捆绑器自动对它们进行代码拆分并提供更好的 TypeScript 推理。1. 相对来说有点新 2. 生态不够完善没有Vuex 那么庞大的社区支持和解决方案1. 中小型应用需要简单轻量级的状态管理库的开发者2. 低复杂度的Vue 项目3. 更流畅的开发体验
http://www.zqtcl.cn/news/909457/

相关文章:

  • 网络教学平台昆明理工大学优化大师的功能有哪些
  • 个人主题网站做的步骤一流的网站建设
  • 公司网站建设规划国外搜索关键词的网站
  • 石家庄网站快速优化排名国内做性视频网站有哪些
  • 易居做网站网页设计的发展
  • 开一个网站建设公司好产品销售型的网站
  • 苍梧县网站建设南京网站建设 雷仁网络
  • 四川网站制作成都wordpress 移动支付
  • 山西网站开发二次开发做自媒体可以参考的外国网站
  • 合肥 网站设计大学生创新创业大赛项目计划书
  • 北京网站主题制作做婚恋网站怎么样
  • 卖设计图的网站低代码开发平台公司
  • 建设银行顺德分行网站中国建筑装饰公司排名
  • 百度网站提交入口百度国内打开google网页的方法
  • 上海高端品牌网站制作wordpress返利主题
  • 网站建设会遇到哪些难题安阳网站如何做优化
  • 哈德网站建设使用wordpress创建企业官网
  • 新品销售网站建设建设银行网站怎么登陆密码
  • 外贸营销主题怎么写seo薪资
  • 手机音乐网站源码关键路径
  • 网站制作哪些官方静态网站模板
  • 网站开发seo网站排名优化服务
  • 佛山营销网站开发帝国cms网站公告怎么做
  • 2_试列出网站开发建设的步骤在哪里进行网站域名的实名认证
  • 个人网站做博客还是做论坛网络服务推广
  • 遵义网站制作小程序辛集做网站
  • 做逆战网站的名字吗网站维护员
  • 浏览器收录网站重庆网上房地产网
  • 门户网站建设哪专业wordpress爆破密码字典
  • 响应式网站的制作app开发公司加盟