vuex获取state对象中值的所有方法小结(module中的state)
短信预约 -IT技能 免费直播动态提醒
vuex获取state对象中的值
直接从store实例取值
// main.js中,把store注册在根实例下,可使用this.$stroe.state直接取值
export default {
computed: {
testNum() {
return this.$store.state.testNum;
}
}
};
使用mapState取值的多种方法
import { mapState } from "vuex";export default {
data() {
return { localNum: 1 };
},
computed: {
...mapState({
// 箭头函数使代码更简练
testNum1: state => state.testNum1,
// 传字符参数'testNum2' 等价于 'state => state.testNum2'
testNum2: "testNum2",
// 组件的局部变量与Vuex变量相加
testNum3(state) {
return state.testNum1 + this.localNum;
}
}),
...mapState([
// 映射this.testNum3为store.state.testNum3
"testNum3"
])
}
};
使用module中的state
import { mapState } from "vuex";
export default {
computed: {
...mapState({
// 箭头函数使代码更简练
testNum1: state => state.moduleA.testNum1
}),
// 第一个参数是namespace命名空间,填上对应的module名称即可
...mapState("moduleA", {
testNum2: state => state.testNum2,
testNum3: "testNum3"
}),
...mapState("moduleA",[
"testNum4"
])
}
};
vuex调用state数据
第一种
直接访问 <h1>姓名:{{$store.state.msg}}</h1>
第二种:利用计算属性
将想要用到的全局state数据,防止到组件的computed内部使用,v-model的内容将其获取和设置分开即可
<h1>姓名:{{msg}}</h1>
<h1>年龄:{{age}}</h1>
<h1>数字:{{num}}</h1>
<input type="text" v-model="num">
computed: {
age:function(){ //msg也相同,就没写
return this.$store.state.age
},
num:{
get:function(){
return this.$store.state.num;
},
set:function(num){ //数据双向绑定
this.$store.commit('setNum',num)
}
}
},
第三种:mapstate 数组
<h1>姓名:{{msg}}</h1>
<h1>年龄:{{age}}</h1>
<h1>数字:{{num}}</h1>
<input type="text" :value="num" @input="changeVal" >
import { mapState } from 'vuex' //需要引入mapState
computed:mapState(['age','msg','num']),
methods: {
changeVal(e){ //设置值
return this.$store.commit('setNum',e.target.value)
}
},
第四种:mapState 对象
<h1>姓名:{{msg}}</h1>
<h1>年龄:{{age}}</h1>
<h1>数字:{{num}}</h1>
import { mapState } from 'vuex' //需要引入mapState
computed:mapState({
msg:'msg',
num:'num',
// age:(state)=>state.age, //不需要大括号的时候,就不需要用 return 返回值
age:(state)=>{ return state.age},
})
第五种:mapState 对象 解构 追加变量
<h1>姓名:{{msg}}</h1>
<h1>年龄:{{age}}</h1>
<h1>数字:{{num}}</h1>
import { mapState } from 'vuex'
let objMapState=mapState({
msg:'msg',
num:'num',
// age:(state)=>state.age,
age:function(state){ return this.greenColor+state.age},
})
data() {
return {
greenColor:'blue'
}
},
computed:{
...mapState(objMapState)
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341