博客
关于我
vuex最简单、最详细的入门文档
阅读量:496 次
发布时间:2019-03-07

本文共 1736 字,大约阅读时间需要 5 分钟。

Vuex 应用实例解析

安装与初始化

安装 vuex 包括两步:首先通过 npm 安装,接着在主应用文件中初始化 store。

pre
npm install vuex --save
/template

在 main.js 中加入以下代码:

pre
import vuex from 'vuex'
Vue.use(vuex)
const store = new Vuex.Store({
state: {
show: false
}
})
/template

最后,将 store 对象传递给 Vue 实例:

pre
new Vue({
el: '#app',
store,
// 其他配置
})
/template

模块化管理状态

将 store 分离到 src/directory 下的 store/index.js 中:

pre
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
modules: {
dialog: dialogStore // 假设 dialogStore 是单独管理对话框的 store
}
})
/template

创建子组件专属的 store

创建 dialog_store.js:

pre
export default {
state: {
show: false
}
}
/template

在主 store 中引用:

pre
modules: {
dialog: dialogStore
}
/template

改写传统的状态管理方式

不再需要直接修改父组件传递的参数,而是通过 vuex store 来统一管理状态:

父组件按钮点击改用:

pre
@click="$store.commit('switch_dialog')"
/template

子组件引用 store:", state 进行计算:

pre
template Eisenhower:projectId康tel
:visible.sync="$store.state.dialog.show"
/template

mutations 与 actions 分别处理

mutations 用于直接修改状态,简单易懂;actions 用于多次调用 mutations,保持操作的单一性。

在 dialog_store.js 中:

pre
export default {
state: {
show: false
},
mutations: {
switchDialog(state) {
state.show = !state.show
}
},
actions: {
switchDialog(context) {
context.commit('switchDialog')
}
}
}
/template

getters 提取计算状态

复杂的状态计算转化为 getters,方便多处复用。

pre
export default {
state: {
show: false
},
getters: {
notShow(state) {
return !state.show
}
},
// 其他功能
}
/template

Vuex 此法优于直接使用 state

避免了 state 直接暴露在组件中,提升代码模块化程度:

在组件中改用 mapState 提取状态:

pre
/template

总结 Plus 小贴士

1. mapState、mapActions、mapGetters 提供更简洁的写法,避免繁琐

2. mutations 里的操作必须同步,不能有异步操作(官方建议)

3. 状态管理要按模块化分开,维护更方便

4. 使用 tools: ' preload' 可提升初始加载速度

转载地址:http://sazjz.baihongyu.com/

你可能感兴趣的文章
Nginx 反向代理配置去除前缀
查看>>
nginx 后端获取真实ip
查看>>
Nginx 多端口配置和访问异常问题的排查与优化
查看>>
Nginx 如何代理转发传递真实 ip 地址?
查看>>
Nginx 学习总结(16)—— 动静分离、压缩、缓存、黑白名单、性能等内容温习
查看>>
Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
查看>>
Nginx 学习(一):Nginx 下载和启动
查看>>
nginx 常用指令配置总结
查看>>
Nginx 常用配置清单
查看>>
nginx 常用配置记录
查看>>
nginx 开启ssl模块 [emerg] the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx
查看>>
Nginx 我们必须知道的那些事
查看>>
Nginx 的 proxy_pass 使用简介
查看>>
Nginx 的配置文件中的 keepalive 介绍
查看>>
Nginx 结合 consul 实现动态负载均衡
查看>>
Nginx 负载均衡与权重配置解析
查看>>
Nginx 负载均衡详解
查看>>
nginx 配置 单页面应用的解决方案
查看>>
nginx 配置https(一)—— 自签名证书
查看>>
nginx 配置~~~本身就是一个静态资源的服务器
查看>>