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

互动网站如何做h5邀请函制作软件app

互动网站如何做,h5邀请函制作软件app,建立网站功能,做公司网站首页一、模块化命名空间1.目的:让代码更好维护,让多种数据分类更加明确。2.修改store.jsconst countAbout {namespaced:true,//开启命名空间state:{x:1},mutations: { ... },actions: { ... },getters: {bigSum(state){return state.sum * 10}}}const perso…

一、模块化+命名空间

        1.目的:让代码更好维护,让多种数据分类更加明确。

        2.修改store.js

        const countAbout = {

                namespaced:true,//开启命名空间

                state:{x:1},

                mutations: { ... },

                actions: { ... },

                getters: {

                        bigSum(state){

                                return state.sum * 10

                        }

                }

        }

        const personAbout = {

                namespaced:true,//开启命名空间

                state:{ ... },

                mutations: { ... },

                actions: { ... }

        }

        const store = new Vuex.Store({

                modules: {

                        countAbout,

                        personAbout

                }

         })

        3.开启命名空间后,组件中读取state数据:

        //方式一:自己直接读取

        this.$store.state.personAbout.list

        //方式二:借助mapState读取

        ...mapState('countAbout',['sum','school','subject']),

        4. 开启命名空间后,组件中读取getters数据:

        //方式一:自己直接读取

        this.$store.getters['personAbout/firstPersonName']

        //方式二:借助mapGetters读取

        ...mapGetters('countAbout',['bigSum'])

        5.开启命名空间后,组件中调用dispatch

        //方式一:自己直接dispatch
this.$store.dispatch('personAbout/addPersonWang',person)
//方式二:借助mapActions:
...mapActions('countAbout',{incrementOdd:'incrementOdd',incrementWait:'incrementWait'})

         6.开启命名空间后,组件中调用commit

        //方式一:自己直接commit
this.$store.commit('personAbout/PERSON_ADD',person)
//方式二:借助mapMutations:
...mapMutations('countAbout',{increment:'INCREMENT',decrement:'DECREMENT'}),

二、代码实现

        将求和相关配置写入countAbout.js中。

export default {namespaced:true,actions:{incrementOdd(context,value){if(context.state.sum % 2)context.commit('INCREMENTODD',value)},incrementWait(context,value){setTimeout(() => {context.commit('INCREMENTWAIT',value)}, 500);}},mutations:{INCREMENT(state,value){state.sum +=value},DECREMENT(state,value){state.sum -=value},INCREMENTODD(state,value){state.sum +=value},INCREMENTWAIT(state,value){state.sum +=value},},state:{sum:0,school:'清华大学',subject:'Vue',},getters:{bigSum(state){return state.sum*10}}
}

        将求和相关配置写入personAbout.js中。

import axios from 'axios'
import { nanoid } from 'nanoid'export default {namespaced:true,actions:{personAddWang(context,value){if(value.name.indexOf('王') === 0){context.commit('PERSON_ADD',value)}else{alert('请添加姓王的人')}},personAddServer(context){axios.get('https://www.openapijs.com/api/random').then(Response=>{context.commit('PERSON_ADD',{id:nanoid(),name:Response.data.data.poems.autho})},Error=>{alert(Error.message)})}},mutations:{PERSON_ADD(state,value){state.personList.unshift(value)}},state:{personList:[{id:'001',name:'张三'}]},getters:{firstPersonName(state){return state.personList[0].name}}
}

        将countAbout和personAbout引入index.js中。

//引入Vue核心库
import Vue from 'vue'
//引入Vuex
import Vuex from 'vuex'
import countAbout from './countAbout'
import personAbout from './personAbout'//应用Vuex插件
Vue.use(Vuex)//创建并暴露store
export default new Vuex.Store({modules:{countAbout,personAbout}
})

        模块化后,在vue文件中不同的引用方法,在Count.js中使用map引用:

<template><div class="main"><h1>这门课是{{ school }}的{{ subject }}课程</h1><h2>当前求和为:{{ sum }}</h2><h3>当前求和放大十倍为:{{ bigSum }}</h3><h3 style="color: red;">当前人数为:{{ personList.length }}</h3><select v-model.number="n"><option value="1">1</option><option value="2">2</option><option value="3">3</option></select><button @click="INCREMENT(n)">+</button><button @click="DECREMENT(n)">-</button><button @click="incrementOdd(n)">当前为奇数再加</button><button @click="incrementWait(n)">等会再加</button></div>
</template><script>import {mapState,mapGetters,mapMutations,mapActions} from 'vuex'export default {name:'Count',data() {return {n:1}},methods: {...mapMutations('countAbout',['INCREMENT','DECREMENT']),...mapActions('countAbout',['incrementOdd','incrementWait']),},computed:{...mapState('countAbout',['sum','school','subject']),...mapState('personAbout',['personList']),...mapGetters('countAbout',['bigSum'])}}
</script><style lang="less" scoped>button{margin-left: 5px;}
</style>

        在Person.js中使用手动引用:

<template><div><h2>人员列表</h2><h3 style="color: red;">Count组件的总和为:{{ sum }}</h3><h3>列表第一个人名为:{{ firstPersonName }}</h3><input type="text" v-model="person"><button @click="personAdd">点击添加</button><button @click="personAddWang">添加一个姓王的人</button><button @click="personAddServer">随机添加一个人</button><ul><li v-for="p in personList" :key="p.id">{{ p.name }}</li></ul></div>
</template><script>import { nanoid } from 'nanoid'export default {name:'Persons',data() {return {person:''}},methods: {personAdd(){const obj = {id:nanoid(),name:this.person}this.$store.commit('personAbout/PERSON_ADD',obj)this.person=''},personAddWang(){const obj = {id:nanoid(),name:this.person}this.$store.dispatch('personAbout/personAddWang',obj)this.person=''},personAddServer(){this.$store.dispatch('personAbout/personAddServer')}},computed:{personList(){return this.$store.state.personAbout.personList},sum(){return this.$store.state.countAbout.sum},firstPersonName(){return this.$store.getters['personAbout/firstPersonName']}}}
</script><style lang="less">ul{font-size: 18px;li{padding-top: 5px;}}
</style>
http://www.dtcms.com/a/462540.html

相关文章:

  • ImageNet数据集
  • 做传销网站后果严重吗个人公司如何注册
  • 火箭升空检测识别数据集:近3w图像,3类,yolo标注
  • 【密码学】对称加密与非对称加密在JS逆向与爆破测试中的应用
  • Qt 自定义无标题栏窗口:FramelessWidget 实现与解析
  • 海林建设局网站济南百度推广排名优化
  • 扩充ec2硬盘对应的lvm
  • 哪些公司的网站做的漂亮上海优化排名推广
  • 做素材类的网站赚钱吗改进网站建设
  • 中山好的网站建设西安公关公司
  • 网页网站的制作过程dedecms建设慕课网站
  • K8S(二)—— K8S 1.28 集群部署指南(kubeadm 方式)
  • Eclipse Mosquitto 在小内存下怎么修改配置文件
  • 猫眼浏览器(Chrome内核增强版浏览器)官方便携版
  • 福建省住房和建设厅网站合同 制作 网站
  • 构建可信数据体系——解读数据治理指南-构建可信数据路线图【附全文阅读】
  • qemu调试edk2
  • 正规网站做菠菜广告焦作网站建设哪家正规
  • 有什么网站可以发布个人信息网站优化计划书
  • 小程序停车场名称动态化实现方案
  • 张家港建设工程质量监督站网站中国廉政文化建设网站
  • sunshine :Moonlight 的自托管游戏串流服务端
  • 防爆手机与普通手机的区别!
  • 铁路建设标准网站专业网站建
  • 免费建网站可信吗wordpress 仪表盘界面
  • SQL Server 限制IP访问数据库的设置方法及注意事项
  • 测试中的 AAA 模式与 Given–When–Then 模式详解
  • Android Studio 虚拟机启动失败/没反应,排查原因。提供一种排查方式。
  • 网站设计需要考虑的基本原则建房子找哪个网站设计
  • C#基础11-常用类