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

上海美术设计公司而的跟地seo排名点击软件

上海美术设计公司,而的跟地seo排名点击软件,南通网站建设总结,网站开发教程大全本文主要介绍如何使用vuex的modules将状态数据根据不同模块进行划分并分别管理以及如何使用mapGetters快速将状态管理中的数据导入成local变量。 文章目录 本系列前文传送门一、场景说明二、使用modules划分不同模块三、使用Getters获取状态管理数据Getter传参mapGetters 辅助…

本文主要介绍如何使用vuex的modules将状态数据根据不同模块进行划分并分别管理以及如何使用mapGetters快速将状态管理中的数据导入成local变量。

文章目录

  • 本系列前文传送门
  • 一、场景说明
  • 二、使用modules划分不同模块
  • 三、使用Getters获取状态管理数据
    • Getter传参
    • mapGetters 辅助函数

本系列前文传送门

  • 「网页开发|前端开发|Vue」01 快速入门:快速写一个Vue的HelloWorld项目
  • 「网页开发|前端开发|Vue」02 从单页面到多页面网站:使用路由实现网站多个页面的展示和跳转
  • 「网页开发|前端开发|页面布局」03 学会够用的CSS,实现任意你想要的页面布局
  • 「网页开发|前端开发|Vue」04 快速掌握开发网站需要的Vue基础知识
  • 「网页开发|前端开发|Vue」05 Vue实战:从零到一实现一个网站导航栏
  • 「网页开发|前端开发|Vue」06 公共组件与嵌套路由:让每一个页面都平等地拥有导航栏
  • 「网页开发|前端开发|Vue」07 前后端分离:如何在Vue中请求外部数据
  • 「网页开发|后端开发|Flask」08 python接口开发快速入门:技术选型&写一个HelloWorld接口
  • 「网页开发|前端开发|Vue」09 Vue状态管理Vuex:让页面根据用户登录状态渲染不同内容

一、场景说明

vuex用于vue开发过程中的数据管理,但随着网站功能增多,项目规模变大,需要管理的数据也自然会越来越多。如果我们把所有的数据都放在一起,那么在后期开发过程可能会导致数据混淆(比如命名相似),或者是代码集中在一处难以维护。

所以我们可以考虑将数据根据功能或者场景划分成不同模块,比如登录模块Login,然后使用modules关键字将不同模块放入到store中。

二、使用modules划分不同模块

modules的用法其实很简单,如下:

const moduleA = {state: {name: "A",},mutations: {},actions: {},getters: {}
}const moduleB = {state: {name: "B",},mutations: {},actions: {}
}const store = new Vuex.Store({modules: {a: moduleA,b: moduleB}
})console.log(store.state.a.name) // -> `moduleA`'s state
console.log(store.state.b.name) // -> `moduleB`'s state

我们在上述代码中定义了两个不同的模块来储存不同场景的模块数据,在moduleA中变量name的值为A,在moduleB中变量name的值为B

定义好各个模块后,我们在store中放入字段名具体模块的对应关系,{a: moduleA, b: moduleB}。之后我们就可以通过store.state.a访问到a(即moduleA)中的state,通过store.state.b访问到b(即moduleB)中的state

所以我们就可以通过store.state.b.name获取到moduleBstatename字段,返回值为B

进一步,我们可以把moduleB的代码独立成文件,比如独立到moduleB.store.js中,然后导入到一个总入口,比如store.js,达到跟业务逻辑代码一样模块化的效果。

三、使用Getters获取状态管理数据

有时候我们需要基于store 中的state进行一些计算。比如我们写一个清单应用,有一个todo-list,需要对列表进行过滤并计数:

computed: {doneTodosCount () {return this.$store.state.todos.filter(todo => todo.done).length}
}

同样地,如果在多处都需要使用,那么我们要么要复制粘贴同一份代码,这让代码变得冗余;要么我们把这个计算放到store的方法中供每个地方调用,这样调用时需要使用commit()方式比较不便,并且可能因为重复计算影响性能。

所以vuex允许我们在store中定义getter(可以认为是 store 的计算属性)。就像计算属性一样,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。并且我们在访问时也可能像访问寻常变量一样访问它们。如下:

const store = new Vuex.Store({state: {todos: [{ id: 1, text: '...', done: true },{ id: 2, text: '...', done: false }]},getters: {doneTodos: state => {return state.todos.filter(todo => todo.done)}}
})

于是我们就可以通过store.getters.doneTodos获取数据,得到[{ id: 1, text: '...', done: true }]

在其他组件中,也可以直接在computed属性中获取这些数据,如下:

computed: {doneTodosCount () {return this.$store.getters.doneTodosCount}
}

Getter传参

getter也可以返回一个函数,我们用函数调用的方式来把参数传到getter的处理逻辑中,如下:

getters: {// ...getTodoById: (state) => (id) => {return state.todos.find(todo => todo.id === id)}
}

在其他组件中,就可以有如下调用:

this.$store.getters.getTodoById(2) // -> { id: 2, text: '...', done: false }

mapGetters 辅助函数

mapGetters辅助函数只有一个简单但实用的作用:将store中的getter映射到局部计算属性,如下:

import { mapGetters } from 'vuex'export default {// ...computed: {// 使用对象展开运算符将 getter 混入 computed 对象中...mapGetters(['doneTodosCount','anotherGetter',// ...])}
}

上述代码就可以直接帮助我们得到同名计算属性: doneTodosCountanotherGetter

如果我们希望重命名getter,则可以传入对应关系,如下:

...mapGetters({// 把 `this.doneCount` 映射为 `this.$store.getters.doneTodosCount`doneCount: 'doneTodosCount'
})

熟悉了以上这些内容之后,基本就可以应对状态管理的常见场景,清晰地组织状态管理代码,避免随着项目规模变大后代码耦合影响开发效率。


写文不易,如果对你有帮助的话,来一波点赞、收藏、关注吧~👇

http://www.tj-hxxt.cn/news/35370.html

相关文章:

  • 楼盘网站建设方案南宁seo专员
  • 苏州网站建设哪个比较牛在线一键免费生成网页网站
  • 网站建设 财务归类暴疯团队seo课程
  • 做爰全过程免费的网站视频百度接单平台
  • 深圳企业网站建设费用竞价托管代运营多少钱
  • 合肥网站搜索优化日照seo优化
  • 网站个人备案模版爱站网关键词怎么挖掘
  • 广州开发网站外包平台
  • edu网站一般谁做的中国国家培训网是真的吗
  • 做网站外包多少钱网络舆情处置的五个步骤
  • 可以做兼职的网站有哪些关键词分析软件
  • 深圳网站建设信科网络网络推广怎么做好
  • 2018网站做外链seo首页排名优化
  • 东莞网站建设aj国内比百度好的搜索引擎
  • 国外网站源码广州品牌营销策划公司排名
  • 汽车建设网站开发流程软文营销网站
  • bs网站开发百度刷首页怎么刷
  • 深圳有做网站的公司吗怎么在百度上推广自己的公司信息
  • 网站接入服务提供单位网站建设推广
  • 福州做网站互联网公司排名博客推广工具
  • wordpress网站正在建设中如何做网站推广的策略
  • 网站首页英文保定seo外包服务商
  • 网站怎么做seo排名苏州整站优化
  • 做cpa建什么网站好网站推广公司哪家好
  • 政府网站建设公司苏州百度推广公司地址
  • 北京分形科技有限公司电商网站商品页的优化目标是什么
  • 张家港企业网站建设佛山市人民政府门户网站
  • 中山做网站的公司如何网上销售自己的产品
  • 北京网站建设及优化360搜索引擎入口
  • 教做黏土手工的网站google adwords关键词工具