携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天
一、vuex
1.概念:专门在 Vue 中实现集中式状态(数据)管理的一个 Vue 插件,对 vue 应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。
2.什么时候使用 Vuex
1)多个组件依赖于同一状态
2)来自不同组件的行为需要变更同一状态
二、vuex 核心概念和 API
1.state
1)vuex 管理的状态对象
2)它应该是唯一的
2.actions
1)值为一个对象,包含多个响应用户动作的回调函数
2)通过 commit( )来触发 mutation 中函数的调用, 间接更新 state
3)如何触发 actions 中的回调?
在组件中使用: $store.dispatch('对应的 action 回调名') 触发
4)可以包含异步代码(定时器, ajax 等等)
3.mutations
1)值是一个对象,包含多个直接更新 state 的方法
2)谁能调用 mutations 中的方法?如何调用?
在 action 中使用:commit('对应的 mutations 方法名') 触发
3)mutations 中方法的特点:不能写异步代码、只能单纯的操作 state
4.getters
1)值为一个对象,包含多个用于返回数据的函数
2)如何使用?—— $store.getters.xxx
5.modules
1)包含多个 module
2)一个 module 是一个 store 的配置对象
3)与一个组件(包含有共享数据)对应
三、请说下封装 vue 组件的过程
首先,组件可以提升整个项目的开发效率。能够把页面抽象成多个相对独立的模块,解决了我们传统项目开发:效率低、难维护、复用性等问题。
1)分析需求:确定业务需求,把页面中可以服用的结构,样式以及功能,单独抽离成一个文件,实现复用
2)具体步骤:使用 Vue.extend 方法创建一个组件,然后使用 Vue.component 方法注册组件,子组件需要数据,可以在 props 中接受定义,而子组件修改好数据后,想把数据传递给父组件。可以采用$emit 方法。