Vue JS:如何更新数据中的值 return
Vue JS: How to update the value that is inside data return
我正在使用 vue-codemirror package 在网站上显示 css 代码。问题是我不明白如何更新我用 vuex
获得的状态
<div>
<codemirror v-model="code" />
<button @click="change">click</button>
{{ $store.state.background }}
</div>
methods: {
change() {
Vue.set(this.$store.state, "background", "#242424");
},
},
data() {
return {
code: dedent`
/* Some example CSS */
body {
margin: ${this.$store.state.background};
padding: 3em 6em;
}
`,
};
},
Vuex
export default new Vuex.Store({
state: {
background: "#000",
},
});
我认为问题出在反应性上,因此决定在单击 click
按钮时使用 Vue.set
,{{ $store.state.background }}
的值发生变化,但 {{ $store.state.background }}
中的代码=16=] return
不变
你也可以看到这个example in codesandbox
喜欢@vanblart 评论您可以创建计算属性,而不是数据:
computed: {
code() { return dedent(`
/* Some example CSS */
body {
margin: ${this.$store.state.background};
padding: 3em 6em;
}
`)
}
并且在 Vuex 中你可以创建 action/mutation 来设置值:
mutations: {
addBkg(state, val) {
state.background = val
},
},
actions: {
setBkg({ commit }, data) {
commit("addBkg", data);
},
},
并在方法中调度该操作:
change() {
this.$store.dispatch("setBkg", "#242424");
},
我正在使用 vue-codemirror package 在网站上显示 css 代码。问题是我不明白如何更新我用 vuex
获得的状态 <div>
<codemirror v-model="code" />
<button @click="change">click</button>
{{ $store.state.background }}
</div>
methods: {
change() {
Vue.set(this.$store.state, "background", "#242424");
},
},
data() {
return {
code: dedent`
/* Some example CSS */
body {
margin: ${this.$store.state.background};
padding: 3em 6em;
}
`,
};
},
Vuex
export default new Vuex.Store({
state: {
background: "#000",
},
});
我认为问题出在反应性上,因此决定在单击 click
按钮时使用 Vue.set
,{{ $store.state.background }}
的值发生变化,但 {{ $store.state.background }}
中的代码=16=] return
不变
你也可以看到这个example in codesandbox
喜欢@vanblart 评论您可以创建计算属性,而不是数据:
computed: {
code() { return dedent(`
/* Some example CSS */
body {
margin: ${this.$store.state.background};
padding: 3em 6em;
}
`)
}
并且在 Vuex 中你可以创建 action/mutation 来设置值:
mutations: {
addBkg(state, val) {
state.background = val
},
},
actions: {
setBkg({ commit }, data) {
commit("addBkg", data);
},
},
并在方法中调度该操作:
change() {
this.$store.dispatch("setBkg", "#242424");
},