nuxt框架中对vuex进行模块化设置的实现方法
2019-09-06 11:55
1031 查看
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 是根模块)
2.Nuxt中怎么对vuex进行模块化设置?
2.1> 例如 -- 设置index.js为根模块,child1.js与child2.js两个子模块
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://www.geek-share.com/detail/2778750239.html
https://www.geek-share.com/detail/2778750547.html
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
相关文章推荐
- 使用花生壳、路由器、个人电脑进行站点部署并实现外网域名访问图文详解(花生壳设置方法 使用方法 使用教程)
- 使用花生壳、路由器、个人电脑进行站点部署并实现外网域名访问图文详解(花生壳设置方法 使用方法 使用教程)
- 使用花生壳、路由器、个人电脑进行站点部署并实现外网域名访问图文详解(花生壳设置方法 使用方法 使用教程)(转)
- Eclipse4.7基础 在创建类的时候,进行设置自动实现抽象父类的所有抽象方法
- RecycleView设置点击的两种方式:adapter中的onBindViewHolder(VH,int)方法中进行;实现RecyclerView的addonItemTouchListerner()
- 使用花生壳、路由器、个人电脑进行站点部署并实现外网域名访问图文详解(花生壳设置方法 使用方法 使用教程)
- 设置PSPad调用devcpp中的mingw Gcc进行编译;另附PSPad中文版一个BUG的解决方法
- [转贴]ASP+FSO+框架实现ASP生成htm并分页的方法
- 范例框架开发方法——快速高效地进行Java Web应用开发
- TreeSet() 类逆向排序(实现compare()方法以便按正常顺序的逆向进行操作)。
- 通过更改字库文件组件及相关设置实现对NK进行裁剪(尤其适用中文简体系统)(转载)
- php和mysql采用utf-8编码时实现按照一个文本字段的首字母的拼音顺序进行排序的方法
- 【iOS-Cocos2d游戏开发之二十二 】CCSpeed实现CCAnimate动画进行时设置慢动作以及设置游戏加减速进行(塔防游戏必备)! .
- ASP+FSO+框架实现ASP生成htm静态页并分页的方法
- 两个IP实现IIS和Apache公用80端口的设置方法
- 通过更改字库文件组件及相关设置实现对NK进行裁剪(尤其适用中文简体系统)
- extjs grid设置某列背景颜色和字体颜色的实现方法
- 关于使用SurfaceFligner进行绘图的具体实现方法
- 【iOS-Cocos2d游戏开发之二十二 】CCSpeed实现CCAnimate动画进行时设置慢动作以及设置游戏加减速进行(塔防游戏必备)!
- "系统管理员设置了系统策略,禁止进行此安装”解决方法!