当前位置: 首页 > news >正文

0资本建设网站游戏开发制作培训

0资本建设网站,游戏开发制作培训,简单网页制作模板图片,食品网站策划一、情景说明 通过前面的学习,我们知道,Vuex的核心文件就是indexc.js 这个文件里面,主要是四个对象 actions、mutations、state、getters 那么,随着业务的复杂化,所有的逻辑都写在一个actions里面吗? 显然…

一、情景说明

通过前面的学习,我们知道,Vuex的核心文件就是indexc.js
这个文件里面,主要是四个对象
actions、mutations、state、getters

那么,随着业务的复杂化,所有的逻辑都写在一个actions里面吗?
显然不是。

这次就来学习下如何实现Vuex的模块化编码
根据业务情况,进行划分
这样的好处显而易见!

二、案例

编码思想大概是这样的
我们根据业务情况,对Vuex的配置进行划分模块
然后,将相应的业务配置独立到一个js文件中,并命名成相关业务名称
再在index.js文件中,进行import导入这些独立出来的js业务配置文件
在通过modules关键字,进行引用即可。

count.js文件,求和相关的配置
关键配置:namespaced:true

//求和相关配置
export default {namespaced:true,actions:{jiaOdd(context,value){console.log('actions中的jiaOdd被调用了')if(context.state.sum % 2){context.commit('JIA',value)}},jiaWait(context,value){console.log('actions中的jiaWait被调用了')setTimeout(()=>{context.commit('JIA',value)},500)}},mutations:{JIA(state,value){console.log('mutations中的JIA被调用了')state.sum += value},JIAN(state,value){console.log('mutations中的JIAN被调用了')state.sum -= value}},state:{sum:0, //当前的和school:'中国',subject:'Vue',},getters:{bigSum(state){return state.sum*10}},
}

person.js文件,人员列表相关的配置
关键配置:namespaced:true

import axios from 'axios'
//人员管理相关配置
export default {namespaced:true,actions:{addPersonWang(context,value){if(value.name.indexOf('王') === 0){context.commit('ADD_PERSON',value)}else{alert('添加的人必须姓王!')}},addPersonServer(context){axios.get('https://api.uixsj.cn/hitokoto/get?type=social').then(response => {context.commit('ADD_PERSON',{id:nanoid(),name:response.data})},error => {alert(error.message)})}},mutations:{ADD_PERSON(state,value){console.log('mutations中的ADD_PERSON被调用了')state.personList.unshift(value)}},state:{personList:[{id:'001',name:'张三'}]},getters:{firstPersonName(state){return state.personList[0].name}},
}

index.js中引入count.jsperson.js文件
关键配置:modules

//该文件用于创建vuex中最为核心的store//引入Vue
import Vue from 'vue'
//引入Vuex
import Vuex from 'vuex'import countOptions from './count'
import personOptions from './person'Vue.use(Vuex);//创建并暴露store
export default new Vuex.Store({modules:{countAbout:countOptions,personAbout:personOptions}
});

vc组件中使用配置
1、常规写法
关键编码:
带上personAbout
this.$store.state.personAbout.personList
this.$store.commit('personAbout/ADD_PERSON',personObj)

        computed:{personList(){return this.$store.state.personAbout.personList},sum(){return this.$store.state.countAbout.sum},firstPersonName(){return this.$store.getters['personAbout/firstPersonName']}},methods: {add(){const personObj = {id:nanoid(),name:this.name}this.$store.commit('personAbout/ADD_PERSON',personObj)this.name = ''},addWang(){const personObj = {id:nanoid(),name:this.name}this.$store.dispatch('personAbout/addPersonWang',personObj)this.name = ''},addPersonServer(){this.$store.dispatch('personAbout/addPersonServer')}},

2、实用mapXxx写法

		computed:{//借助mapState生成计算属性,从state中读取数据。(数组写法)...mapState('countAbout',['sum','school','subject']),...mapState('personAbout',['personList']),//借助mapGetters生成计算属性,从getters中读取数据。(数组写法)...mapGetters('countAbout',['bigSum'])},methods: {//借助mapMutations生成对应的方法,方法中会调用commit去联系mutations(对象写法)...mapMutations('countAbout',{increment:'JIA',decrement:'JIAN'}),//借助mapActions生成对应的方法,方法中会调用dispatch去联系actions(对象写法)...mapActions('countAbout',{incrementOdd:'jiaOdd',incrementWait:'jiaWait'})},
http://www.yayakq.cn/news/367024/

相关文章:

  • 那家网站建设公司好网站视频插件怎么做
  • 租房网站建设知名广告公司有哪些
  • 网站建设的具体实施方案wordpress 侧边导航菜单
  • 不动产网站建设推广员网站怎么做
  • 网站开发公司应该具备怎样的资质wordpress 加载速度优化
  • 襄阳做网站公司有哪些淘宝网站推广怎么做
  • 360免费wifi助手网络推广优化
  • vs2010网站开发 视频官方网站开发哪家好
  • 一个公司可以做几个网站吗wordpress扫码支付
  • 做网站要域名吗工作感悟的句子
  • 专业网站建设价位net后缀做公司网站
  • 网站建设办公软件销售技巧祥云平台官方网站
  • 做手机网站用什么五路居网站建设
  • php网站开发文档怎么写做网站用什么语
  • 教育培训门户网站模板下载广元做网站站排名
  • 平凉网站开发做网站有什么市场风险
  • 团购网站建设案例武陟县住房和城乡建设局网站
  • 展示形网站怎么建银川做网站公司
  • 电子商务 网站系统河南中建卓越建设管理有限公司网站
  • 当当网的网站建设要求wordpress不锈钢企业
  • 公司做网站如何跟客户介绍微信网站制作北京
  • 网站服务器干啥seo优化信
  • 目录搜索引擎网站十个app制作网站
  • 南京网站建设推广跨境网站入口
  • 网站页面管理做3d动画网站
  • 音乐在线制作网站多媒体设计制作公司北京
  • 沈阳手机网站网站建设培训心得
  • 备案的网站程序上传建设商城网站多少钱
  • 适合做网站的软件有哪些网站开发服务费计入哪项费用
  • 学院网站建设自查报告seo网站优化系统