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 相关文章推荐
JavaScript语句可以不以;结尾的烦恼
Mar 08 Javascript
javascript 类定义的4种方法
Sep 12 Javascript
flash 得到自身url参数的代码
Nov 15 Javascript
js用Date对象处理时间实现思路及代码
Jan 31 Javascript
jQuery实现 注册时选择阅读条款 左右移动
Apr 11 Javascript
javascript字母大小写转换的4个函数详解
May 09 Javascript
JavaScript基于setTimeout实现计数的方法
May 08 Javascript
解析javascript中鼠标滚轮事件
May 26 Javascript
JS制作类似选项卡切换的年历
Dec 03 Javascript
AngularJS打开页面隐藏显示表达式用法示例
Dec 25 Javascript
简单的vue-resourse获取json并应用到模板示例
Feb 10 Javascript
修改NPM全局模式的默认安装路径的方法
Dec 15 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
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
codeigniter集成ucenter1.6双向通信的解决办法
2014/06/12 PHP
PHP队列用法实例
2014/11/05 PHP
PHP 实现公历日期与农历日期的互转换
2017/09/13 PHP
laravel实现简单用户权限的示例代码
2019/05/28 PHP
php框架知识点的整理和补充
2021/03/01 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
IE6下JS动态设置图片src地址问题
2010/01/08 Javascript
一个网马的tips实现分析
2010/11/28 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
JS 控件事件小结
2012/10/31 Javascript
jQuery $.data()方法使用注意细节
2012/12/31 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
Python文件和流(实例讲解)
2017/09/12 Python
django 微信网页授权认证api的步骤详解
2019/07/30 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
2020/09/30 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
lookfantastic荷兰:在线购买奢华护肤、护发和化妆品
2018/11/27 全球购物
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
财务稽核岗位职责
2015/04/13 职场文书
原告离婚代理词
2015/05/23 职场文书
golang 实现Location跳转方式
2021/05/02 Golang
HTTP中的Content-type详解
2022/01/18 HTML / CSS
Docker安装MySql8并远程访问的实现
2022/07/07 Servers