Vuex 状态管理 01
Vuex 状态管理
Vuex
是一套组件状态管理的维护方案,作为插件使用,进一步完善了 Vue 基础代码功能,时 Vue 组件状态更加容易维护,为大型项目开发提供了强大的技术支持。
Vuex 下载安装
① 创建 vuex.js 文件
② 复制拷入 vuex.js 文件中 https://unpkg.com/vuex@3.6.2/dist/vuex.js
<body> <div id="app"> <p>{{ this.$store.state.name }}</p> </div> </body> <script> // 创建实例对象 store var store = new Vuex.Store({ state: { name: 'vuex.js 直接引用' } }) var vm = new Vue({ el: '#app', store }) </script>
store 中状态为响应式
<body> <div id="app"> <p>{{ this.$store.state.name }}</p> </div> </body> <script> // 创建实例对象 store 其中的状态是响应式的 在组件中调用 store 中的状态使劲需要计算属性返回即可 var store = new Vuex.Store({ state: { name: 'vuex.js 直接引用' } }) var mapState = Vuex.mapState var vm = new Vue({ el: '#app', store, computed: { // 在组件中调用 store 中的状态使劲需要计算属性返回即可 name () { return this.$store.state.name } } }) </script>
计算器案例
每一个 Vuex 应用的核心就是 store(仓库),即响应式容器,它是用来定义应用中的数据以及数据处理工具。该表 store 的唯一途径就是显式的提交 mutation,方便耿总每一个状态的变化。
<body> <div id="app"> <button @click="increment">+</button> <p>{{ this.$store.state.count }}</p> </div> </body> <script> const store = new Vuex.Store({ state: { count: 0 }, // 修改 count 的值 mutations: { increase(state) { state.count++ } } }) var vm = new Vue({ el: '#app', store, methods: { increment() { this.$store.commit("increase") } } }) </script>
Vuex 状态管理模式
组件的状态变化是通过 Vue 单向数据流的设计理念实现的。
new Vue({ // State data() { return{ count: 0 } }, // View template: '<div>{{ count }}</div>', // Actions methods: { increment() { this.count++ } } })
State:驱动应用的数据源
View:已声明方式将 state 映射到视图
Action:响应在 View 上的用户输入导致的状态变化
但数据流的方向
View 的单向数据流增强了组件之间的独立性,但是存在多个组件共享状态的时候,单向数据流就会被破坏。为了数据维护更方便,需要将组建共享状态抽离出来,用全局单例模式来管理。该模式下,任何组件都能获取状态或者触发行为,这就是 Vuex 数据状态管理。Vuex 是专门为 Vue 设计的状态管理库,以利用 Vue 的细粒度数据响应机制来进行高效的状态更新。
Vuex 内部结构的工作流程关系图
Actions 中定义事件回调方法,通过 Dispatch 触发事件处理方法
例:store.dispatch('事件处理方法名称'),并且 Actions 是异步的。
Mutations 通过 Commit 提交
例:store.commit(‘事件处理方法名称’),并且 Mutations 是异步的。
从指责上,Actions 负责业务代码,而 Matations 专注于修改 State。在提交 Mutations 时,devtools 调试工具完成 Mutations 状态变化的跟踪。
原文地址:https://www.cnblogs.com/yanjiuyanluo/p/14999343.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法