手机版
网站地图
美文美图
最新动态
你好,欢迎访问
好美文阅读网
个性皮肤
搜索
网站首页
美文
文章
散文
日记
诗歌
小说
故事
句子
作文
签名
祝福语
情书
范文
读后感
文学百科
美文摘抄
节日文章
名家散文
网名大全
座右铭
口号大全
面试技巧
说说大全
阅读答案
诗词默写
流言蜚语
节日祝福
好句子
经典台词
谚语大全
亲情故事
友情故事
表白情书
工作报告
活动总结
心得体会
专题汇总
美文网首页
react & vue & angular
Vuex最详细教学
Vuex最详细教学
作者:
扶得一人醉如苏沐晨
| 来源:发表于
2022-06-02 07:41 被阅读0次
一、Vuex单界面到多界面状态管理切换:
1.安装配置vuex,版本依赖
vue2的项目使用vuex3,vue3的项目使用vuex4
npm install vuex --save 这个指令默认安装Vuex4
npm install vuex@3 @代表安装指定版本的Vuex3
2.创建 store/index.js 文件
3.main.js 中引入 store/index.js
二、Vuex-devtools安装应用
在Chrome安装devtools插件打开项目之后:可以看到和实时监控state的数据
三、Vuex的基本使用
Vuex的响应式原理:
Vuex的store中的state是响应式的,当state中的数据发生改变时, Vue组件会自动更新.
这就要求我们必须遵守一些Vuex对应的规则:
提前在store中初始化好所需的属性.
当给state中的对象添加新属性时,使用下面的方式:
➢方式一: 使用Vue.set(obj, ‘newProp’, 123)
➢方式二:用新对象给旧对象重新赋值
Vuex实现了一个单向数据流,在全局拥有一个State存放数据,所有修改State的操作必须通过Mutation进行,Mutation的同时提供了订阅者模式供外部插件调用获取State数据的更新。所有异步接口需要走Action,常见于调用后端接口异步获取更新数据,而Action也是无法直接修改State的,还是需要通过Mutation来修改State的数据。最后,根据State的变化,渲染到视图上。Vuex运行依赖Vue内部数据
1、
$store.state
通过这个方式,能直接使用state里的数据。
点击按钮发现,我们无法更改$store.state.counter
2、mutations
要想修改state的数据必须通过mutations
:
三、Vuex核心概念
Vuex有几个比较核心的概念:
State
Getters
Mutation
Action
Module
1、state
Vuex 使用
单一状态树
——是的,用一个对象就包含了全部的应用层级状态。至此它便作为一个“唯一数据源 (
SSOT
)”而存在。这也意味着,每个应用将仅仅包含一个 store 实例。
单一状态树能够让我们最直接的方式找到某个状态的片段,而且在之后的维护和调试过程中,也可以非常方便的管理和维护,存储在 Vuex 中的数据和 Vue 实例中的 data 遵循相同的规则。
2、vuex-getters的使用:
其实可以当成组件共享的计算属性
例:写一个对象数组,找出里面age>20的对象
1)普通写法:这种写法只能在需要的每个组件里都写上这个计算属性
2)写在getters里面 每个组件都可以直接使用:
其他组件也可以获取到
在getters的方法里也可以将getters作为参数,调用getters里的其他方法:
3、Mutation状态更新:
state里的数据改变只能通过Mutation!(上面已经解释,这里不做赘述)
我们来看Mutation中方法参数传递:
mutation的提交风格:
之前的commit只是一种普通的提交风格Vue还提供了另外一种风格,它是一个包含type属性的对象
双向绑定机制,需要new一个Vue对象来实现“响应式化”,所以Vuex是一个专门为Vue.js设计的状态管理库。
vue-mutations的类型常量定义步骤
可以在store里加一个js文件:
6、vuex-actions的使用:
mutation里的所有代码
都不能有
异步操作:
如果有异步操作,
就用actions来替代Mutations
但是actions也不能直接修改state里的数据,
如果有一个异步操作需要修改state里的数据,那么正确的方法应该是:index.js:
commit是提交mutatious的同步操作,
dispatch是分发actions的异步操作
dispatch:含有异步操作,例如向后台提交数据,写法: this.$store.dispatch(‘action方法名’,值)
点击触发方法,通过dispatch("aUpdateInfo")来触发actions里面的方法 aUpdateInfo ,方法内通过commit来触发mutation里面的方法,更新state里面的数据
context后面也可以接一个传递参数payload:
但是通常携带的信息不只一个的时候怎么办呢:可以将payload作为一个对象:
更简洁优雅的写法:Promise:
7、vuex-modules的使用:
Vue使用单-状态树,那么也意味着很多状态都会交给Vuex来管理.当应用变得非常复杂时,store对象就有可能变得相当臃肿,为了解决这个问题,Vuex允许我们将store分割成模块(Module),而每个模块拥有自己的state. mutations、actions, getters等
1)modules的state:
这里只能用
$store.state.a.name
而不是modules.a
因为在Devtools里可以看到 a会自动变成state的一个对象:
2)modules的mutation:
3)modules的getters:
论是定义在store里的getters还是定义在modules里的getters 调用的方法都相同:
我们都知道getters里的方法可以将本身getters作为参数来调用里面的其他函数:
而且,在modules中的getters还可以将store里的state作为参数:
4)modules的actions:
和store几乎一样,只不过调用方式不一样罢了
相关文章
网友评论
react & vue & angular
本文标题:
Vuex最详细教学
本文链接:
https://www.haomeiwen.com/subject/xkvxmrtx.html
延伸阅读
那年盛夏诗歌
环境监察队工作总结范文
优秀教师学习心得范文
华胥引的读后感300字
《Its red》教学反思范文
农资购销的合同范本
竞选中队委优秀演讲稿
辞金蹈海的成语解释
《世纪宝鼎》公开课教案设计
因为爱你,所以牵挂
今生今世红尘醉——美到
一个90后的内心独白
致已逝去的高中年华
深度阅读
您也可以注册成为美文阅读网的作者,发表您的原创作品、分享您的心情!
情人节
母亲节
重阳节
清明节
端午节
植树节
元宵节
妇女节
愚人节
圣诞节
父亲节
教师节
儿童节
劳动节
青年节
建军节
万圣节
平安夜
光棍节
中秋节
国庆节
感恩节
腊八节
更多话题
栏目导航
react & vue & angular
摄影
故事
互联网
读书
旅行
热点阅读
标准答案
粽飘香,您不在
2022-06-01
vue开发-VsCode常用插件
vue开发常用命令
Can't resolve 'less-loader'
不同时代的六一节(主题文)
诗二首
𝟞.𝟙 儿童节朋友圈限定文案
儿童如何获得良好的阅读能力?
react & vue & angular
vue - 路由带参跳转
VueX使用实例
VUE Router使用实例
Vue中使用axios
VUE项目优化策略
Vue2组件通信方式及其应用场景
vue使用keep-alive实现页面前进刷新,后退缓存
Vue2 响应式原理
vue - vuex 的安装与使用
Vue3.x 父子通讯
网友评论