nuxt框架中对vuex进行模块化设置的实现方法


Posted in Javascript onSeptember 06, 2019
1.Nuxt里怎么使用vuex?

Nuxt.js 内置引用了 vuex 模块,所以不需要额外安装。

Nuxt.js 会尝试找到应用根目录下的 store 目录,如果该目录存在,它将做以下的事情:
1.1> 引用 vuex 模块
1.2> 将 vuex 模块 加到 vendors 构建配置中去
1.3> 设置 Vue 根实例的 store 配置项

Nuxt.js 支持两种使用 store 的方式:
普通方式: store/index.js 返回一个 Vuex.Store 实例
模块方式: store 目录下的每个.js 文件会被转换成为状态树指定命名的子模块 (当然,index 是根模块)

nuxt框架中对vuex进行模块化设置的实现方法

2.Nuxt中怎么对vuex进行模块化设置?

2.1> 例如 -- 设置index.js为根模块,child1.js与child2.js两个子模块

nuxt框架中对vuex进行模块化设置的实现方法

2.2> 在store/index.js 中不需要返回 Vuex.Store 实例,可以直接将 state、mutations 和 actions 暴露出来:
(以下为例:index中存储商品总价,child1中存储单价,child2中存放数量)

export const state = () =>({
 totalPrice:0,
});
export const mutations = {
 totalPrice (state) { //总价
 // state.totalPrice = state.num*state.price 错误方式:使用子模块的state,应该在变量名前加上文件名,如下
 state.totalPrice = state.child1.price*state.child2.num //正确方式
 }
};

子模块中同样直接将 state、mutations 和 actions 暴露出来:

child1.js1
export const state = () =>({
 price:10, //单价
});
export const mutations = {
 getPrice(state,price) { 
 state.price= price
 }
};
child2.js2
export const state = () =>({
 num:5,
});
export const mutations = {
 getNum(state,num) { //数量
 state.num= num
 }
};
3.在vue文件中获取vuex的数据,调用mutation中的方法修改数据
<script>
export default {
 name : 'test',
 data() {
 return {
 totalPrice:this.$store.state.totalPrice, //取index.js(根模块)中的值
 num:this.$store.state.child2.num,  //取子模块中的值
 price:this.$store.state.child1.price, //取子模块中的值
 }
 },
}
</script>
methods: {
 setTotalPrice(){
 this.$store.commit('totalPrice')
 },
 setNum(){
 this.$store.commit('child2/getNum',参数) //使用子模块的mutation中的方法 this.$store.commit(‘文件名/方法名',参数)
 },
 setPrice(){
 this.$store.commit('child1/getPrice',参数) //使用子模块的mutation中的方法
 },
 },
补充: 使用子模块的action: this.$store.dispatch(‘文件名/变量名')

参考链接:
https://3water.com/article/169502.htm
https://3water.com/article/169504.htm

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Extjs学习过程中新手容易碰到的低级错误积累
Feb 11 Javascript
Javascript 类型转换方法
Oct 24 Javascript
用JQUERY增删元素的代码
Feb 14 Javascript
javascript ready和load事件的区别示例介绍
Aug 30 Javascript
js实现连续英文字符自动换行兼容ie6 ie7和firefox
Sep 06 Javascript
JavaScript实现MIPS乘法模拟的方法
Apr 17 Javascript
jQuery实现ToolTip元素定位显示功能示例
Nov 23 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
Mar 12 Javascript
了解JavaScript表单操作和表单域
May 27 Javascript
微信小程序封装分享与分销功能过程解析
Aug 13 Javascript
JavaScript相等运算符的九条规则示例详解
Oct 20 Javascript
cypress测试本地web应用
Jun 01 Javascript
layui 表格操作列按钮动态显示的实现方法
Sep 06 #Javascript
基于Vue和Element-Ui搭建项目的方法
Sep 06 #Javascript
微信小程序 搜索框组件代码实例
Sep 06 #Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
Sep 06 #Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
Sep 06 #Javascript
jQuery实现每日秒杀商品倒计时功能
Sep 06 #jQuery
vue-cli history模式实现tomcat部署报404的解决方式
Sep 06 #Javascript
You might like
PHP 防恶意刷新实现代码
2010/05/16 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
2015/03/18 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
jquery一般方法介绍 入门参考
2011/06/21 Javascript
分页栏的web标准实现
2011/11/01 Javascript
JavaScript中判断原生函数检查function是否是原生代码
2014/09/09 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
JS使用正则表达式除去字符串中重复字符的方法
2015/11/05 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
使用jQuery和ajax代替iframe的方法(详解)
2017/04/12 jQuery
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
python3实现斐波那契数列(4种方法)
2019/07/15 Python
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
Tech21美国/加拿大:英国NO.1防摔保护壳品牌
2018/01/20 全球购物
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
台湾租车首选品牌:IWS艾维士租车
2019/05/03 全球购物
SQL面试题
2013/12/09 面试题
你所在的项目是如何确定版本号的
2015/12/28 面试题
基于Python 函数和方法的区别说明
2021/03/24 Python
财务方面个人工作的自我评价
2013/12/28 职场文书
物流管理专业自荐信
2014/06/23 职场文书
2014年小学德育工作总结
2014/12/05 职场文书
亮剑观后感300字
2015/06/05 职场文书
小学语文国培研修日志
2015/11/13 职场文书
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android