vuex初识


一、安装vuex

npm install vuex --save

 

二、在src文件夹下新建文件夹store,并在store中新建store.js文件

 

 

 


三、main.js中引入

//vuex
import store from './store'
Vue.config.productionTip = false

new Vue({
store,
render: h => h(App)
}).$mount('#app')

 


四、在store.js文件中引入vue和vuex

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

 


五、在store.js中写是哪个下面的代码

export default new Vuex.Store({
state: { //相当于data

},
mutations: { //相当于methods,主要用来对state中的值进行操作

},
getters:{ //相当于computed

},
actions: { //与mutations类似,不同的是他提交的是mutations中的函数
},
modules: { //主要用来进行模块化的操作,使用的不多
}
})

 


六、在需要的页面使用
1、直接使用state中的值

{{this.$store.state.count }} //直接用模板语法写this.$store.state加上其中想要使用的值即可,这里用的是count,注意:state中需要先定义count

 

2、使用计算公式算出的值
(1)首先在state里定义几个需要使用的变量

state: { //相当于data
count: 5
price1:30,
price2:50
},

 

(2)在getters中写一个计算函数,这里写一个简单的加法函数

getters:{
totals:function (state) { //这里定义了一个变量,变量的值是函数内计算出的结果,state为上面的state,这个必引,因为要使用的变量都在state里面
let total = state.price1 + state.price2
return total
}
},

 

(3)接下来就和使用state值差不多用就可以了

{{this.$store.getters.totals}} //获取vuex内getters中表达式计算出的值

 

3、操作修改state的值
用mutations做一个小功能,实现点击按钮加减,效果如下:

 

 

(1)当前页面html内写好按钮和数字框

<div style="width: 400px;height:50px;background: aquamarine">
<span>{{this.$store.state.count}}</span>
<el-button @click="add">点击加一</el-button>
<el-button @click="minus">点击减一</el-button>
</div>

 

(2)当前页面js部分内写点击事件

methods:{

add(){
this.$store.commit('addNum',1) //addNum为mutation中的方法名,1为参数
},
minus(){
this.$store.commit('minusNum',1)
}

},

 

(3)store.js的mutations中写处理事件

mutations: {
addNum(state,num){ //对count做加法,state必引,因为要操作的变量在里面(count要先在state中定义)
state.count = state.count+num
},
minusNum(state,num){ //对count做减法,state必引,因为要操作的变量在里面 
state.count = state.count-num
}
},

 

(4)到这里就写好了,然后运行就可以看到效果

 

posted @ 2020-08-20 18:01  远方的异特  阅读(181)  评论(0编辑  收藏  举报