Vuex是什么?Vuex能做什么?Vuex怎么使用?

2022-12-25 0 913

点选右上角黄色按键高度关注“web秀”,让你或者说秀出来

序言

前几日,有爸爸妈妈问我,Vuex是是不是玩玩的?也是始终没良机,趁那时没事,一出来自学一波。

Vuex是什么?Vuex能做什么?Vuex怎么使用?

本该文你能教给甚么?

1、Vuex是甚么?何种机能情景选用它?

2、Vuex有这三类特性?

3、选用Vuex的益处?

4、选用Vuex实例。

5、Vuex常用严重错误。

上面他们来详尽谈谈!

Vuex是甚么?何种机能情景选用它?

Vuex是什么?Vuex能做什么?Vuex怎么使用?

非官方话:Vuex 是两个专为 Vue.js 应用领域软件开发的状况区域化。它选用封闭式repeats应用领域的大部份模块的状况,并以适当的准则确保状况以一类可预估的形式发生改变。Vuex 也软件系统到 Vue 的非官方增容辅助工具 devtools extension,提供更多了譬如零实用性的 time-travel 增容、状况镜像引入求出等高阶增容机能。

单纯的说:Vuex是vue架构中状况管理工作。

这里就又出现两个问题:那甚么是“状况区域化”?

甚么是“状况区域化”?

应用领域情景有:单页应用领域中,模块之间的数据状况。 应用领域实例: 1、购物车机能; 2、下单页面有选择优惠券按键,点选进入优惠券页面,选择后返回到下单页,数据会绑定回来,显示已选择的优惠券; 3、登录状况等等

Vuex是什么?Vuex能做什么?Vuex怎么使用?

Vuex有这三类特性?

有五种,分别是 State、 Getter、Mutation 、Action、 Module

Vuex的State特性

1、Vuex就是两个仓库,仓库里面放了很多对象。其中state就是数据源存放地,对应于一般Vue对象里面的data

2、state里面存放的数据是响应式的,Vue模块从store中读取数据,若是store中的数据发生改变,依赖这个数据的模块也会发生更新

3、它通过mapState把全局的 state 和 getters 映射到当前模块的 computed 计算特性中

Vuex的Getter特性

1、getters 可以对State进行计算操作,它就是Store的计算特性

2、虽然在模块内也可以做计算特性,但是getters 可以在多模块之间复用

3、如果两个状况只在两个模块内选用,是可以不用getters

Vuex的Mutation特性

Action 类似于 mutation,不同在于:Action 提交的是 mutation,而不是直接变更状况;Action 可以包含任意异步操作。

Vuex的Module特性

Module 可以让每两个模块拥有自己的state、mutation、action、getters,使得结构非常清晰,方便管理工作。

const moduleA = { state: { … }, mutations: { … }, actions: { … }, getters: { … } } const moduleB = { state: { … }, mutations: { … }, actions: { … } } const store = new Vuex.Store({ modules: { a: moduleA, b: moduleB })
Vuex是什么?Vuex能做什么?Vuex怎么使用?

选用Vuex的益处?

1、多层嵌套的模块、兄弟组件间的状况会更好管理工作维护。

2、缓存一些当前要选用请求远程或本地的数据集(刷新后会自己销毁)。

3、有了第二条,就可以减少向服务器的请求,节省资源。如果你的用户足够多,那么每多出两个请求,对公司来说,都是一大笔钱。

4、对开发者来说,如果你的项目足够复杂,团队的规模也不仅是两个人,数据集中处理更利于程序的稳定和维护。

Vuex是什么?Vuex能做什么?Vuex怎么使用?

选用Vuex实例

npm install vuex –save <template> <div id=”app”> <span>count = {{$store.state.count}}</span> <button @click=”increment”>+5</button> <button @click=”decrement”>-3</button> </div> </template> <script> // 引入mapActions,很重要 import { mapGetters, mapActions } from vuex export default{ //与vuex中的getters关联 computed: mapGetters([ ]), //与vuex中的actions关联 methods: mapActions([ increment, decrement ]) } </script>

创建两个vuex文件夹,文件夹里面创建两个store.js文件

import Vue from vue import Vuex from vuex Vue.use(Vuex) // 首先声明两个状况 state const state = { count: 0 } // 然后给 actions 注册事件处理函数,当这个函数被触发时,将状况提交到 mutaions中处理 const actions = { increment: ({ commit }) => commit(increment), // 提交到mutations中处理 decrement: ({ commit }) => commit(decrement) } // 更新状况 const mutations = { increment (state) { state.count = state.count + 5 }, decrement getters = { } // 上面这个相当关键了,大部份模块,注册才能选用 export default new Vuex.Store({ state, mutations, actions, getters })

要在main.js声明全局

… import store from ./vuex/store; … new Vue({ … store … })

Vuex常用严重错误

Vuex是什么?Vuex能做什么?Vuex怎么使用?

很多时候,总是不知不觉的直接改变 store 中的状况。这就导致了两个非常常用的严重错误:Do not mutate vuex store state outside mutation handlers.

Vuex是什么?Vuex能做什么?Vuex怎么使用?

改变 store 中的状况的唯一途径就是显式地提交 (commit) mutation

… this.store.commit(increment, 10);

改变一下store.js文件

… const mutations = { increment (state, params) { // params=10 } } …

公告

喜欢小编的点选高度关注,了解更多知识!

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务