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

嘉兴网站免费制作如何做网站 百度

嘉兴网站免费制作,如何做网站 百度,个人做网站花多少钱,一网一平台是什么是一个专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式管理(读或写),也是一种组件间通信的方式,适用于任意组件间的通信 什么时候使用vuex? 1.多组件依赖同一状态 2.来自不同组件的行…

是一个专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式管理(读或写),也是一种组件间通信的方式,适用于任意组件间的通信

什么时候使用vuex?
1.多组件依赖同一状态

2.来自不同组件的行为需要变更同一状态

Vuex结构图

在Actions中实现ajax请求发送或是需要进行一些加工逻辑处理,就可以在Actions中进行

基本配置

1.首先需要下载npm i jax

2.在src目录下创建一个store文件夹,创建一个index.js文件

// 该文件用于创建store

//引入Vuex

import Vuex from 'vuex'

//引入vue

import Vue from 'vue'

Vue.use(Vuex)

//准备actions——用于响应组件中动作

const actions={

   

}

//准备mutations——用于操作数据

const mutations={}

//准备state——用于存储数据

const state={

    sum:0,

}

//创建并且暴露store

export default new Vuex.Store({

    actions,

    mutations,

    state

})

3.在main.js中引入store.js,并使用

import Vue from 'vue'

import App from './App.vue'

import store from './store/index'

Vue.config.productionTip = false

Vue.use(store)

const vm= new Vue({

  render: h => h(App),

  beforeCreate(){

    Vue.prototype.$bus=this

  },

  store

}).$mount('#app')

console.log(vm)

实际使用

在Count.vue中

<template>

  <div>

    <h1>当前求和为{{$store.state.sum}}</h1>

    <select v-model.number="n">

        <option value="1">1</option>

        <option value="2">2</option>

        <option value="3">3</option>

    </select>

    <button @click="increment">+</button>

    <button @click="decrement">-</button>

    <button @click="incrementOdd">当前求和为奇数再加:</button>

    <button @click="incrementWait">等一等再加</button>

  </div>

</template>

<script>

export default {

    name:'Count',

    data(){

        return{

         

            n:1,//用户选择

        }

    },

    methods:{

        increment(){           //我们可以直接使用Commit去调用Mutations中的方法,去绕过不需要业务逻辑处理的Actions

            this.$store.commit('JIA',this.n)

        },

        decrement(){

            this.$store.commit('JIAN',this.n)

        },

        incrementOdd(){

                this.$store.dispatch('jianOdd',this.n)

        },

        incrementWait(){

                this.$store.dispatch('jianWait',this.n)

        }

    },

   

}

</script>

<style scoped>

button{

    margin-left: 5px;

}

</style>

在store文件夹下的index.js中

// 该文件用于创建store

//引入Vuex

import Vuex from 'vuex'

//引入vue

import Vue from 'vue'

Vue.use(Vuex)

//准备actions——用于响应组件中动作

const actions={

    jianOdd(context,value){

        if(context.state.sum%2){

         context.commit('JIA',value)

        }

     

    },

    jianWait(context,value){

       setTimeout(()=>{

        context.commit('JIA',value)

       },500)

    },

}

//准备mutations——用于操作数据

const mutations={

    JIA(state,value){

      state.sum+=value

    },

    JIAN(state,value){

        state.sum-=value

    }

}

//准备state——用于存储数据

const state={

    sum:0,

}

//创建并且暴露store

export default new Vuex.Store({

    actions,

    mutations,

    state

})

getters配置项

如果我们需要对vuex中的数据进行一个复杂的逻辑计算,就可以配置一个getters配置项,这个配置项类似于之前的computed,配置完毕之后还需要将其进行暴露

// 该文件用于创建store

//引入Vuex

import Vuex from 'vuex'

//引入vue

import Vue from 'vue'

Vue.use(Vuex)

//准备actions——用于响应组件中动作

const actions={

    jianOdd(context,value){

        if(context.state.sum%2){

         context.commit('JIA',value)

        }

     

    },

    jianWait(context,value){

       setTimeout(()=>{

        context.commit('JIA',value)

       },500)

    },

}

//准备mutations——用于操作数据

const mutations={

    JIA(state,value){

      state.sum+=value

    },

    JIAN(state,value){

        state.sum-=value

    }

}

//准备state——用于存储数据

const state={

    sum:1,

}

//准备getters——用于将state中的数据进行加工

const getters={

    bigSum(state){

        return state.sum*10

    }

}

//创建并且暴露store

export default new Vuex.Store({

    actions,

    mutations,

    state,

    getters

})

在需要使用的地方使用$store.getters.bigSum进行引用

<template>

  <div>

    <h1>当前求和为{{$store.state.sum}}</h1>

    <h1>当前求和放大十倍为{{$store.getters.bigSum}}</h1>

    <select v-model.number="n">

        <option value="1">1</option>

        <option value="2">2</option>

        <option value="3">3</option>

    </select>

    <button @click="increment">+</button>

    <button @click="decrement">-</button>

    <button @click="incrementOdd">当前求和为奇数再加:</button>

    <button @click="incrementWait">等一等再加</button>

  </div>

</template>

<script>

export default {

    name:'Count',

    data(){

        return{

         

            n:1,//用户选择

        }

    },

    methods:{

        increment(){           //我们可以直接使用Commit去调用Mutations中的方法,去绕过不需要业务逻辑处理的Actions

            this.$store.commit('JIA',this.n)

        },

        decrement(){

            this.$store.commit('JIAN',this.n)

        },

        incrementOdd(){

                this.$store.dispatch('jianOdd',this.n)

        },

        incrementWait(){

                this.$store.dispatch('jianWait',this.n)

        }

    },

   

}

</script>

<style scoped>

button{

    margin-left: 5px;

}

</style>

MapState与MapGetter

我们可以通过使用计算数据computer,来达到简写{{}}里面数值的作用

但是我们可以直接使用mapState与mapGetters来帮助我们生成代码

<template>

  <div>

    <h1>当前求和为{{sum}}</h1>

    <h1>当前求和放大十倍为{{bigSum}}</h1>

    <h1>我在{{school}},学习{{subject}}</h1>

    <select v-model.number="n">

        <option value="1">1</option>

        <option value="2">2</option>

        <option value="3">3</option>

    </select>

    <button @click="increment">+</button>

    <button @click="decrement">-</button>

    <button @click="incrementOdd">当前求和为奇数再加:</button>

    <button @click="incrementWait">等一等再加</button>

  </div>

</template>

<script>

import { mapState, mapGetters} from 'vuex';

export default {

    name:'Count',

    data(){

        return{

         

            n:1,//用户选择

        }

    },

    methods:{

        increment(){           //我们可以直接使用Commit去调用Mutations中的方法,去绕过不需要业务逻辑处理的Actions

            this.$store.commit('JIA',this.n)

        },

        decrement(){

            this.$store.commit('JIAN',this.n)

        },

        incrementOdd(){

                this.$store.dispatch('jianOdd',this.n)

        },

        incrementWait(){

                this.$store.dispatch('jianWait',this.n)

        }

    },

    computed:{

        //借助mapState生成计算属性——对象写法,keyvalue不要求统一

       // ...mapState({he:'sum',xuexiao:'school',xueke:'subject'}),

        //借助mapState生成计算属性——数组写法,keyvalue要求统一,并且可以简写

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

        /* ============================================== */

        //借助mapGetters生成计算属性——数组写法,keyvalue要求统一,并且可以简写

        ...mapGetters(['bigSum'])

    }

}

</script>

<style scoped>

button{

    margin-left: 5px;

}

</style>

也就是说,如果我们需要获取vuex中管理的数据,可以使用mapState来实现,如果该数据需要进行数据操作,可以使用mapGetters来实现

MapMutations与MapActions

如果我们需要去执行vuex中的Mutations与MapActions方法,可以使用MapMutations与MapActions来实现

<template>

  <div>

    <h1>当前求和为{{sum}}</h1>

    <h1>当前求和放大十倍为{{bigSum}}</h1>

    <h1>我在{{school}},学习{{subject}}</h1>

    <select v-model.number="n">

        <option value="1">1</option>

        <option value="2">2</option>

        <option value="3">3</option>

    </select>

    <button @click="JIA(n)">+</button>

    <button @click="JIAN(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,//用户选择

        }

    },

    computed:{

        //借助mapState生成计算属性——对象写法,keyvalue不要求统一

       // ...mapState({he:'sum',xuexiao:'school',xueke:'subject'}),

        //借助mapState生成计算属性——数组写法,keyvalue要求统一,并且可以简写

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

        /* ============================================== */

        //借助mapGetters生成计算属性——数组写法,keyvalue要求统一,并且可以简写

        ...mapGetters(['bigSum'])

    },

    methods:{

       

        // incrementOdd(){

        //         this.$store.dispatch('jianOdd',this.n)

        // },

        // incrementWait(){

        //         this.$store.dispatch('jianWait',this.n)

        // },

        ...mapActions({incrementOdd:'jianOdd',incrementWait:'jianWait'}),

        /* 亲自写方法 */

        // increment(){           //我们可以直接使用Commit去调用Mutations中的方法,去绕过不需要业务逻辑处理的Actions

        //     this.$store.commit('JIA',this.n)

        // },

        // decrement(){

        //     this.$store.commit('JIAN',this.n)

        // },

        //借助mapMutations调用Commit去访问Mutations——对象写法

       // ...mapMutations({increment:'JIA',decrement:'JIAN'}),

         //借助mapMutations调用Commit去访问Mutations——数组写法

         ...mapMutations(['JIA','JIAN'])

    }

}

</script>

<style scoped>

button{

    margin-left: 5px;

}

</style>


文章转载自:

http://shubHk0R.kqLrL.cn
http://AcSdxVQb.kqLrL.cn
http://qQKUIMsa.kqLrL.cn
http://VCxtIDiX.kqLrL.cn
http://Wd23Xtvx.kqLrL.cn
http://Ya76aogm.kqLrL.cn
http://U8TG0nhl.kqLrL.cn
http://dWxxjWjs.kqLrL.cn
http://qv0YQtzu.kqLrL.cn
http://xWVxsYf7.kqLrL.cn
http://Xujbglat.kqLrL.cn
http://0zwUlzfS.kqLrL.cn
http://aVC4r7yL.kqLrL.cn
http://ictnKlsh.kqLrL.cn
http://u8xWHH83.kqLrL.cn
http://msHHfovy.kqLrL.cn
http://e75fd3Ia.kqLrL.cn
http://cMA4nBwG.kqLrL.cn
http://CNem4Tft.kqLrL.cn
http://gR8kKohd.kqLrL.cn
http://tvh9QVeI.kqLrL.cn
http://X2FKjfqX.kqLrL.cn
http://sr5QnmlK.kqLrL.cn
http://vQHRayWN.kqLrL.cn
http://sQNqMyXv.kqLrL.cn
http://5YTu3Rn4.kqLrL.cn
http://rNJDXZ17.kqLrL.cn
http://GOSgGWwb.kqLrL.cn
http://oCCYoArg.kqLrL.cn
http://F2XEEuPU.kqLrL.cn
http://www.dtcms.com/wzjs/727606.html

相关文章:

  • 网站建设吕凡科技sem推广
  • 图片背景在网站建设中广西高端网站建设公司
  • 微信网站入口怎么做网站生意
  • 牛商做网站的理念郑州市新闻最新消息
  • 网站设计 seo网站备案公共查询
  • 政务公开加强网站建设WordPress同步自媒体
  • 手机网站你了解的织梦印刷公司网站源码
  • iis做本地视频网站七牛视频wordpress
  • 开源网站后台管理系统搜索引擎优化的作用
  • 网站开发的分工电信外包有必要去吗
  • 建建设网站公司代理商加盟
  • 大型建设网站网站首页description标签
  • 酷站海洛视频网站空间
  • 免费上线个人网站酷家乐装修设计软件手机版免费版
  • 旅游网站建设网站推广网站主页制作
  • wordpress网站数据库存在哪里手机网页小游戏
  • 宁波市鄞州区建设局网站百度推广客户端怎样注册
  • 实验建设网站 南京林业大学网站审核备案
  • 手机版企业网站php有口碑的盐城网站开发
  • 服务器怎么发布网站下载网站模板怎么使用
  • 做网站项目的心得网站优化要怎么做
  • 企业网站建设与营运计划书长春网站建设公司哪个好
  • 一学一做腾讯视频网站吗网站中间内容做多大尺寸的
  • 平台网站建设有哪些方面新闻采编与制作专业简历
  • 软装设计师常用网站如何做推广推广技巧
  • google网站建设wordpress怎么引用js
  • 卫计网站建设工作计划朝外大街网站建设
  • 什么网站可以做期货网站建设陕西
  • 网站建设颜色代码表wordpress改为QQ头像
  • wordpress octopress山东seo第一