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

厦门中小企业网站制作中山市网站开发公司

厦门中小企业网站制作,中山市网站开发公司,html网站开发工具有哪些,wordpress 来必力目录 一#xff0c;状态管理Vuex二#xff0c;state状态三#xff0c;mutations四#xff0c;actions五#xff0c;modules最后 一#xff0c;状态管理Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态#xff0c;并… 目录 一状态管理Vuex二state状态三mutations四actions五modules最后 一状态管理Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态并以相应的规则保证状态以一种可预测的方式发生变化。 Vuex的核心state、mutations、actions state存储公共的一些数据 mutations:定义一些方法来修改state中的数据数据怎么改变 actions: 使用异步的方式来触发mutations中的方法进行提交。 此部分的代码我们在vue-cli中使用 二state状态 声明 import Vue from vue import Vuex from vuexVue.use(Vuex)export default new Vuex.Store({state: {count:11},mutations: {},actions: {} })使用 // 直接在模板中使用 templatedivvuex中的状态数据count:{{ $store.state.count }}/div /template// 在方法中使用 ceshi(){console.log(Vuex中的状态数据count:,this.$store.state.count);this.$router.push({path:/ceshi},(){},(){})}在计算属性中使用 当一个组件需要获取多个状态的时候将这些状态都声明为计算属性会有些重复和冗余。为了解决这个问题我们可以使用 mapState 辅助函数帮助我们生成计算属性让你少按几次键。 // 在组件中导入mapState函数。mapState函数返回的是一个对象 import {mapState} from vuex// 在组件中导入mapState函数。mapState函数返回的是一个对象 templatediv idappdiv idnavrouter-link to/Home/router-link |router-link to/aboutAbout/router-link|el-button clickgouwucheclick购物车/el-buttonel-button clickceshi测试/el-buttonbrvuex中的状态数据count:{{ $store.state.count }}br{{ count }}br doubleCount:{{ doubleCount }}/divrouter-view//div /templatescript import {mapState} from vuexexport default{data(){return{baseCount:10}},methods:{gouwucheclick(){this.$router.push({path:/gouwuche},(){},(){})},ceshi(){console.log(Vuex中的状态数据count:,this.$store.state.count);this.$router.push({path:/ceshi},(){},(){})}},computed:mapState({count:count,doubleCount(state){return state.count * 2 this.baseCount} })} /script使用展开运算符 在之前的示例中不方便和本地的计算属性混合使用下面我们使用展开运算符这样就可以和本地的计算属性一起使用。 templatediv idappdiv idnavrouter-link to/Home/router-link |router-link to/aboutAbout/router-link|el-button clickgouwucheclick购物车/el-buttonel-button clickceshi测试/el-buttonbr本地的计算属性{{ localCount }}brvuex中的状态数据count:{{ $store.state.count }}br{{ count }}br doubleCount:{{ doubleCount }}/divrouter-view//div /templatescript import {mapState} from vuexexport default{data(){return{baseCount:10}},methods:{gouwucheclick(){this.$router.push({path:/gouwuche},(){},(){})},ceshi(){this.baseCount5 console.log(Vuex中的状态数据count:,this.$store.state.count);this.$router.push({path:/ceshi},(){},(){})}},computed:{localCount(){// 本地的计算属性没有vuex中的状态参与return this.baseCount 1},...mapState({count:count,doubleCount(state){return state.count * 2 this.baseCount}})}} /script三mutations state中的数据是只读的不能直接进行修改。想要修改state中数据的唯一途径就是调用mutation方法。 使用commit()函数调用mutation函数。 注意mutation中只能执行同步方法。 mutations: {// 在mutations中定义方法在方法中修改state// state是状态num是额外的参数add(state,num){state.count state.count num}},直接调用 templatediv idappdiv idnavrouter-link to/Home/router-link |router-link to/aboutAbout/router-link|el-button clickgouwucheclick购物车/el-buttonel-button clickceshi测试/el-buttonel-button clickaddcount调用add/el-buttonbr本地的计算属性{{ localCount }}brvuex中的状态数据count:{{ $store.state.count }}br{{ count }}br doubleCount:{{ doubleCount }}/divrouter-view//div /templatescript import {mapState} from vuexexport default{data(){return{baseCount:10}},methods:{gouwucheclick(){this.$router.push({path:/gouwuche},(){},(){})},ceshi(){this.baseCount5 console.log(Vuex中的状态数据count:,this.$store.state.count);this.$router.push({path:/ceshi},(){},(){})},addcount(){this.$store.commit(add,1)}},computed:{localCount(){// 本地的计算属性没有vuex中的状态参与return this.baseCount 1},...mapState({count:count,doubleCount(state){return state.count * 2 this.baseCount}})}} /script演示2 使用辅助函数mapMutations简化 import {mapMutations} from vuex四actions actions中执行的方法可以是异步的 actions中要修改状态state中的内容需要通过mutation。 在组件中调用action需要调用dispatch()函数。 步骤如下 声明action方法 actions: {delayAdd(countext,num){// 在action中调用mutation中的方法setTimeout((){countext.commit(add,num)},2000)}},直接调用action方法 templatediv idappdiv idnavrouter-link to/Home/router-link |router-link to/aboutAbout/router-link|el-button clickgouwucheclick购物车/el-buttonel-button clickceshi测试/el-buttonel-button clickaddcount调用add/el-buttonel-button clickaddcountAction调用actions中的方法/el-buttonbr本地的计算属性{{ localCount }}brvuex中的状态数据count:{{ $store.state.count }}br{{ count }}br doubleCount:{{ doubleCount }}/divrouter-view//div /templatescript import {mapState} from vuexexport default{data(){return{baseCount:10}},methods:{gouwucheclick(){this.$router.push({path:/gouwuche},(){},(){})},ceshi(){this.baseCount5 console.log(Vuex中的状态数据count:,this.$store.state.count);this.$router.push({path:/ceshi},(){},(){})},addcount(){this.$store.commit(add,1)},addcountAction(){this.$store.dispatch(delayAdd,2)}},computed:{localCount(){// 本地的计算属性没有vuex中的状态参与return this.baseCount 1},...mapState({count:count,doubleCount(state){return state.count * 2 this.baseCount}})}} /script五modules 在复杂的项目中我们不能把大量的数据堆积到store中这样store的内容就太多而且比较凌乱不方便管理。所以就是出现了module。他将原有的store切割成了一个个的module。每个module中都有自己的store、mutation、actions和getter store中定义一个module const storeModuleA{state:{countA:10},mutations:{addA(state){state.countAconsole.log(moduleA:state.countA);},// 此方法和root中的方法名字一致 add(state){console.log(moduleA:state.countA);}} }export default storeModuleA在store.js中导入并注册此module import Vue from vue import Vuex from vuex import storeModuleA from ./stroeModuleAVue.use(Vuex)export default new Vuex.Store({state: {count:11,},mutations: {// state是状态num是额外的参数add(state,num){console.log(root中的add);state.count state.count num}},actions: {delayAdd(countext,num){// 在action中调用mutation中的方法setTimeout((){countext.commit(add,num)},2000)}},modules: {a:storeModuleA} })在组件中使用子模块中的状态 templatediv idappdiv idnavrouter-link to/Home/router-link |router-link to/aboutAbout/router-link|el-button clickgouwucheclick购物车/el-buttonel-button clickceshi测试/el-buttonel-button clickaddcount调用add/el-buttonel-button clickaddcountAction调用actions中的方法/el-buttonbr本地的计算属性{{ localCount }}brvuex中的状态数据count:{{ $store.state.count }}br{{ count }}br doubleCount:{{ doubleCount }}hr{{ $store.state.a.countA }}el-button clickaddMoudleAaddA调用a模块中的mutation-addA/el-button/divrouter-view//div /templatescript import {mapState} from vuexexport default{data(){return{baseCount:10}},methods:{gouwucheclick(){this.$router.push({path:/gouwuche},(){},(){})},ceshi(){this.baseCount5 console.log(Vuex中的状态数据count:,this.$store.state.count);this.$router.push({path:/ceshi},(){},(){})},addcount(){this.$store.commit(add,1)},addcountAction(){this.$store.dispatch(delayAdd,2)},addMoudleAaddA(){this.$store.commit(addA)},},computed:{localCount(){// 本地的计算属性没有vuex中的状态参与return this.baseCount 1},...mapState({count:count,doubleCount(state){return state.count * 2 this.baseCount}})}} /script示例4 在store.js中导入并注册此module 在组件中使用子模块中的状态 没有声明namespace的情况 子模块中的mutation在没有使用namespace的情况下这些方法会注册到root中。 如果子模块中的mutation和root中的一样。则都会被调用。 templatediv idappdiv idnavrouter-link to/Home/router-link |router-link to/aboutAbout/router-link|el-button clickgouwucheclick购物车/el-buttonel-button clickceshi测试/el-buttonel-button clickaddcount调用add/el-buttonel-button clickaddcountAction调用actions中的方法/el-buttonbr本地的计算属性{{ localCount }}brvuex中的状态数据count:{{ $store.state.count }}br{{ count }}br doubleCount:{{ doubleCount }}hr{{ $store.state.a.countA }}el-button clickaddMoudleAaddA调用a模块中的mutation-addA/el-buttonel-button clickaddMoudleAadd调用a模块中的mutation-add/el-button/divrouter-view//div /templatescript import {mapState} from vuexexport default{data(){return{baseCount:10}},methods:{gouwucheclick(){this.$router.push({path:/gouwuche},(){},(){})},ceshi(){this.baseCount5 console.log(Vuex中的状态数据count:,this.$store.state.count);this.$router.push({path:/ceshi},(){},(){})},addcount(){this.$store.commit(add,1)},addcountAction(){this.$store.dispatch(delayAdd,2)},addMoudleAaddA(){this.$store.commit(addA)},addMoudleAadd(){this.$store.commit(add)}},computed:{localCount(){// 本地的计算属性没有vuex中的状态参与return this.baseCount 1},...mapState({count:count,doubleCount(state){return state.count * 2 this.baseCount}})}} /script声明namespace的情况 在module中添加 import Vue from vue import Vuex from vuex import storeModuleA from ./stroeModuleAVue.use(Vuex)export default new Vuex.Store({state: {count:11,},mutations: {// state是状态num是额外的参数add(state,num){console.log(root中的add);state.count state.count num}},actions: {delayAdd(countext,num){// 在action中调用mutation中的方法setTimeout((){countext.commit(add,num)},2000)}},modules: {a:{namespaced:true,...storeModuleA}} })在组件中调用加上别名即可 this.$store.commit(a/addA);templatediv idappdiv idnavrouter-link to/Home/router-link |router-link to/aboutAbout/router-link|el-button clickgouwucheclick购物车/el-buttonel-button clickceshi测试/el-buttonel-button clickaddcount调用add/el-buttonel-button clickaddcountAction调用actions中的方法/el-buttonbr本地的计算属性{{ localCount }}brvuex中的状态数据count:{{ $store.state.count }}br{{ count }}br doubleCount:{{ doubleCount }}hr{{ $store.state.a.countA }}el-button clickaddMoudleAaddA调用a模块中的mutation-addA/el-buttonel-button clickaddMoudleAadd调用a模块中的mutation-add/el-button/divrouter-view//div /templatescript import {mapState} from vuexexport default{data(){return{baseCount:10}},methods:{gouwucheclick(){this.$router.push({path:/gouwuche},(){},(){})},ceshi(){this.baseCount5 console.log(Vuex中的状态数据count:,this.$store.state.count);this.$router.push({path:/ceshi},(){},(){})},addcount(){this.$store.commit(add,1)},addcountAction(){this.$store.dispatch(delayAdd,2)},addMoudleAaddA(){this.$store.commit(addA)},addMoudleAadd(){this.$store.commit(a/add)}},computed:{localCount(){// 本地的计算属性没有vuex中的状态参与return this.baseCount 1},...mapState({count:count,doubleCount(state){return state.count * 2 this.baseCount}})}} /script最后 送大家一句话不是井里没有水而是挖的不够深
http://www.zqtcl.cn/news/117041/

相关文章:

  • 网站聊天怎么做2345网址导航智能主版
  • 如何优化网站加载速度做推广公司
  • 网站下载不了视频php网站 数据库链接
  • 制作网页网站教程wordpress建立扁平化
  • 网站建设小知识郑州网站建设找伟置
  • 苏中建设官方网站旅游做攻略用什么网站好
  • 信息门户网站制作wordpress改商城
  • 企业类网站有哪些甘肃省和住房建设厅网站
  • 嘉兴市住房和城乡建设局网站wordpress nodejs版本
  • 做网站 百度推广深圳外贸招聘
  • 网站留言板功能网站建设 核对流程
  • WordPress输出当前网址郑州官网seo厂家
  • c 网站开发框架wordpress建站的教程
  • 营销 推广 网站王烨演的电视剧
  • 阳泉营销型网站建设网站360做的标记如何取消
  • win7 iis asp网站配置文件注册建设网站的公司网站
  • 品牌网站建设预算网站制作过程内容
  • 石河子建设网站网站开发参考资料
  • 网站开发招标参数wordpress个性化友情链接页面
  • 建设企业网站有哪些wordpress进入中国市场
  • 大学社团网站建设虚拟主机如何做网站
  • 销售的产品是帮别人做网站电脑搭建网站
  • h5商城网站是什么莆田网站建设技术托管
  • 优惠券怎么做自己的网站英文网站怎么设计
  • 做网站怎么样才能排在首页做微网站的公司哪家好呢
  • 分析网站外链分析工具wordpress同步简书
  • 电子商务网站案例分析互动游戏制作软件
  • 网站做子域名做美团旅游网站多少钱
  • php做网站架构图开家做网站公司有哪些
  • 专门做ppt会员网站鄞州网站制作