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 相关文章推荐
对象的类型:本地对象(1)
Dec 29 Javascript
神奇的7个jQuery 3D插件整理
Jan 06 Javascript
jQuery中的$.ajax()方法应用
May 06 Javascript
Javascript基础教程之数据类型 (字符串 String)
Jan 18 Javascript
jquery实现的伪分页效果代码
Oct 29 Javascript
理解javascript异步编程
Jan 27 Javascript
javascript中去除数组重复元素的实现方法【实例】
Apr 12 Javascript
PassWord输入框代码分享
Jun 07 Javascript
详解vue-meta如何让你更优雅的管理头部标签
Jan 18 Javascript
vue移动端实现红包雨效果
Jun 23 Javascript
使用layui实现树形结构的方法
Sep 20 Javascript
完美解决vue 中多个echarts图表自适应的问题
Jul 19 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
收音机的保养
2021/03/01 无线电
PHP学习资料汇总与网址
2007/03/16 PHP
PHP 截取字符串 分别适合GB2312和UTF8编码情况
2009/02/12 PHP
抓取YAHOO股票报价的类
2009/05/15 PHP
php编写一个简单的路由类
2011/04/13 PHP
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
php查询ip所在地的方法
2014/12/05 PHP
smarty模板引擎基础知识入门
2015/03/30 PHP
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
js文本框输入点回车触发确定兼容IE、FF等
2013/11/19 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
Vue2单一事件管理组件通信
2017/05/09 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
JS替换字符串中指定位置的字符(多种方法)
2020/05/28 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
Django csrf 验证问题的实现
2018/10/09 Python
举例讲解Python常用模块
2019/03/08 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
公关活动策划方案
2014/05/25 职场文书
乡镇保密工作责任书
2014/07/28 职场文书
学校领导干部民主生活会整改方案
2014/09/29 职场文书
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
2022/04/19 HTML / CSS