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优先加载笔记代码
Sep 30 Javascript
Js+Jq获取URL参数的集中方法示例代码
May 20 Javascript
javascript弹出窗口实现代码
Nov 12 Javascript
浅谈js中StringBuffer类的实现方法及使用
Sep 02 Javascript
Javascrip实现文字跳动特效
Nov 27 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
Dec 08 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
Mar 31 Javascript
Vue 滚动行为的具体使用方法
Sep 13 Javascript
vuejs实现本地数据的筛选分页功能思路详解
Nov 15 Javascript
详解Koa中更方便简单发送响应的方式
Jul 20 Javascript
JS中Promise函数then的奥秘探究
Jul 30 Javascript
JS运算符优先级与表达式示例详解
Sep 04 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设计模式中工厂模式详细介绍
2013/05/15 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
js创建对象的方式总结
2015/01/10 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
2017/06/12 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
ES6 Object.assign()的用法及其使用
2020/01/18 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
Python基本语法经典教程
2016/03/11 Python
Python基于matplotlib绘制栈式直方图的方法示例
2017/08/09 Python
Numpy掩码式数组详解
2018/04/17 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
Tensorflow中的降维函数tf.reduce_*使用总结
2020/04/20 Python
CSS3 分类菜单效果
2019/05/27 HTML / CSS
质检员岗位职责
2013/12/17 职场文书
小学开学典礼主持词
2014/03/19 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python