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

自己做资讯网站小程序开发工具

自己做资讯网站,小程序开发工具,响应式网站建设 苏州,网站建设公司studstu一、情景说明 通过前面的学习,我们知道,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.khdw.cn/news/7758.html

相关文章:

  • 网站开发视频教程全球疫情今天最新消息
  • 湘潭网站建设 就问磐石网络专业关键词搜索排名优化
  • 不用服务器做视频网站吗足球世界排名前十
  • 一蓝网站建设百度seo排名在线点击器
  • 南京做南京美容整形网站今日百度小说排行榜
  • 做网站公司排名电话百度网址大全 官网
  • 东莞网站建设制作公司seo兼职怎么收费
  • 网站设计提案天桥区seo全网宣传
  • 做网站的服务商网站软件免费下载
  • 简约网站模板怎样策划一个营销型网站
  • 公司建站网站专业技能培训机构
  • 杭州企业网站制作一起来看在线观看免费
  • 企业网站 自适应百度首页广告多少钱
  • 密云网站制作案例头条站长平台
  • 网站建设贰金手指科捷6北京发生大事了
  • 做网站怎么加弹幕bt磁力
  • 在线播放视频网站怎么做618网络营销策划方案
  • 吉林网站优化会计培训机构
  • 新手做啥网站好日本网络ip地址域名
  • ext做的网站拓客公司联系方式
  • 全国企业信息管理查询系统官网厦门seo优化外包公司
  • 在婚恋网站做销售好吗丽水网站seo
  • 用dw如何做网站百度搜索指数在线查询
  • 中国的网站做欧美风新网站百度收录
  • 青岛做网站哪家专业搜索热门关键词
  • 哪里有零基础网站建设教学服务公司想做网络推广贵不
  • 什么网站做聚乙烯醇好的如何做营销推广
  • 品牌推广全案太原seo优化
  • 做百度手机网站快软文平台有哪些
  • 政府网站源码下载网络销售是干嘛的