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 相关文章推荐
js AspxButton的客户端操作
Jun 26 Javascript
jQuery Lightbox 图片展示插件使用说明
Apr 25 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
Nov 17 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
Mar 17 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
Jun 23 Javascript
JavaScript实现短信倒计时60s
Oct 09 Javascript
纯JS实现可用于页码更换的飞页特效示例
May 21 Javascript
Webpack devServer中的 proxy 实现跨域的解决
Jun 15 Javascript
详解如何在JS代码中消灭for循环
Dec 11 Javascript
vue 使用 canvas 实现手写电子签名
Mar 06 Javascript
详解关于Vue单元测试的几个坑
Apr 26 Javascript
vue实现登录、注册、退出、跳转等功能
Dec 23 Vue.js
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正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
基于jquery实现控制经纬度显示地图与卫星
2013/05/20 Javascript
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
javascript实现动态导入js与css等静态资源文件的方法
2015/07/25 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
分享PyCharm的几个使用技巧
2019/11/10 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
用 Python 制作地球仪的方法
2020/04/24 Python
python3实现飞机大战
2020/11/29 Python
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
迪拜航空官方网站:flydubai
2017/04/20 全球购物
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
C#笔试题
2015/07/14 面试题
介绍下static、final、abstract区别
2015/01/30 面试题
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
酒店拾金不昧表扬信
2014/01/18 职场文书
医学专业职业生涯规划范文
2014/02/05 职场文书
三年级学生评语
2014/04/23 职场文书
个人批评与自我批评
2014/10/15 职场文书
团代会闭幕词
2015/01/28 职场文书
护士求职自荐信
2015/03/25 职场文书
党员承诺书范文2015
2015/04/27 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android
MySQL 条件查询的常用操作
2022/04/28 MySQL