Vue.js 在Nuxt.js中使用Vuex有点麻烦
我有一个简单的疑问,就是我不知道为什么这个方法有效: store/topics.jsVue.js 在Nuxt.js中使用Vuex有点麻烦,vue.js,nuxt.js,vuex,Vue.js,Nuxt.js,Vuex,我有一个简单的疑问,就是我不知道为什么这个方法有效: store/topics.js export const state = () => ({ list:[] }) import slugify from "limax" export const mutations = { ADD_TOPIC(state, title, subtitle){ state.list.push({ title, subtitle, i
export const state = () => ({
list:[]
})
import slugify from "limax"
export const mutations = {
ADD_TOPIC(state, title, subtitle){
state.list.push({
title,
subtitle,
id: Date.now(),
...
})
},
...
export const state = () => ({
list:[]
})
export const mutations = {
ADD_TOPIC(state, topic){
state.list.push(topic)
},
...
topics/new.vue
import {mapMutations} from 'vuex'
export default {
data(){
return {
title: '',
subtitle: '',
}
},
methods: {
addTopic(title, subtitle){
this.$store.commit('topics/ADD_TOPIC', title, subtitle)
},
...
import {mapMutations} from 'vuex'
export default {
data(){
return {
topic: {
title: '',
subtitle: '',
id: Date.now(),
...
}
}
},
methods: {
addTopic(topic){
this.$store.commit('topics/ADD_TOPIC', topic)
},
...
但这不起作用:
store/topics.js
export const state = () => ({
list:[]
})
import slugify from "limax"
export const mutations = {
ADD_TOPIC(state, title, subtitle){
state.list.push({
title,
subtitle,
id: Date.now(),
...
})
},
...
export const state = () => ({
list:[]
})
export const mutations = {
ADD_TOPIC(state, topic){
state.list.push(topic)
},
...
topics/new.vue
import {mapMutations} from 'vuex'
export default {
data(){
return {
title: '',
subtitle: '',
}
},
methods: {
addTopic(title, subtitle){
this.$store.commit('topics/ADD_TOPIC', title, subtitle)
},
...
import {mapMutations} from 'vuex'
export default {
data(){
return {
topic: {
title: '',
subtitle: '',
id: Date.now(),
...
}
}
},
methods: {
addTopic(topic){
this.$store.commit('topics/ADD_TOPIC', topic)
},
...
在第二种情况下,当我推一个主题时,它在数组中被正确推。。。但是,当我添加下一个对象时,它就像一个复制对象:S,当我在输入中写入某些内容时,会更新数组中所有复制的对象。我猜这是因为它们都是相同的对象。请尝试
this.$store.commit('topics/ADD_TOPIC',{…TOPIC})
这将在您每次提交时发送新对象。根据您之前的评论,我希望您在使用时更加小心。这是一个肤浅的克隆。我想这是因为它们都是相同的物体。请尝试this.$store.commit('topics/ADD_TOPIC',{…TOPIC})
这将在您每次提交时发送新对象。根据您之前的评论,我希望您在使用时更加小心。这是一个肤浅的克隆。查看更多