网站首页 > 开源技术 正文
大项目中为了方便管理,责任单一,所以模块化是很有必要的。
1:在src下新建目录store,然后再建storemodule.js文件,把 上篇 store.js文件抽出来:
import Vue from 'vue'
import Vuex from 'vuex'
import countsub from './countsub' //.js 或者.vue可以省略,其他文件不可以。
Vue.use(Vuex)
export default new Vuex.Store({
modules:{
countsub,
}
})
2:在store目录下再建countsub.js文件,抽离上篇store.js文件中vuex的四部分内容,然后在storemodule.js文件中注册:
export default{
state:{
count:0
},
getters:{
addcountgetters(state){
return state.count + 4;
}
},
mutations:{//相当于methods,定义一些方法(同步)。方法里有个默认参数--state
addcount(state){
state.count++;
},
subcount(state){
state.count--;
}
},
actions:{//异步操作(也可以定义同步方法)。提交mutation,而不是直接变更状态。
addcountasync(context){
setTimeout(()=>{
context.commit('addcount');
},1000);//延迟一秒。
}
}
}
3:修改main.js中的注册文件:
4:修改store.vue中computed的属性内容。如果是用字符串的必须改成用箭头函数,并且state后面必须加新的模块名称(countsub)。
即state.countsub.count
<template>
<div>
<!-- <h5 style="backgroudcolor:red">Vuex:{{showstorecount}}</h5> -->
<h5>Vuex:{{showcount}}</h5>
<h5>计算属性:{{showstatevalue}}</h5>
<h5>vuex中的计算属性:getters:{{addcountgetters}}</h5>
</div>
</template>
<script>
//import {mapState,mapGetters} from 'vuex'
import {mapState} from 'vuex'
export default {
// computed: {//第一种方式。
// showstorecount() {
// return this.$store.state.count;
// }
// },
// computed:mapState({ //第二种,但是这样就使用不了计算属性啦。
// count:state=>state.count,
// showcount:'count' //等于 count:state=>state.count
// })
computed:{
...mapState({//es6 展开。这样既可以用vuex,也可以使用计算属性。
// showcount:'count', //分模块后,不能用字符串方式,而是用箭头方式,并且state后需跟模块名。
showcount:state=>state.countsub.count,//2019.12.14
}),
// ...mapGetters([//名字和getters中的属于一样时,用数组就可以映射。
// 'addcountgetters'
// ]),
showstatevalue(){//监听中使用计算属性监听vuex中的数据。
//return this.$store.state.count*2;//没分模块之前的写法。2019.12.14
return this.$store.state.countsub.count * 2;//分模块后的写法。就是必须在sate后跟state对应模块名。
},
addcountgetters(){
return this.$store.getters.addcountgetters;//getters属性不受模块影响。
}
},
}
</script>
<style lang="scss" scoped>
</style>
猜你喜欢
- 2024-12-25 专注于性能的 SolidJS solidcenter软件有什么用
- 2024-12-25 说下你的vue项目的目录结构,该怎么划分?
- 2024-12-25 初学vue3, 全是黑盒子,vue3知识点汇总
- 2024-12-25 35《Vue 入门教程》Vue-Cli 项目文件结构分析
- 2024-12-25 七爪源码:如何使用 Next.js 构建 Shopify 店面
- 2024-12-25 一文看懂苹果全球开发者大会 五大系统全面升级
- 2024-12-25 一起学Vue:状态管理(Vuex) vue中的状态管理
- 2024-12-25 vue项目的目录结构,大型项目结构和组件封装
- 2024-12-25 Supabase 和 Svelte 快速入门指南
- 2024-12-25 人人商城,弹窗“服务器暂时无法处理您的请求,请稍后重试。”
你 发表评论:
欢迎- 05-16东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 05-16这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 05-16湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- 05-16Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- 05-16G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- 05-16DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 05-16上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- 05-16WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 最近发表
-
- 东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 湖人自媒体调查:89%球迷希望DFS回归 79%希望詹姆斯回归
- 一觉醒来湖人苦盼的纯3D终于到位 DFS能带给紫金军多少帮助
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)