Vue.js 仅含组件的Vuex以一种方式更新 安装程序

Vue.js 仅含组件的Vuex以一种方式更新 安装程序,vue.js,vuex,Vue.js,Vuex,我有一个超级简单的测试应用程序,包含两个组件:一个和一个vuex数据存储。您使用的是v-model=pageTitle,其中pageTitle是一个计算属性。默认情况下,计算属性仅为getter,但您试图使用v-model绑定该值 所以你需要的是一个 因此,contentsection组件应该如下所示: const contentsection = { template: `<div id="content"> Enter a page title: <

我有一个超级简单的测试应用程序,包含两个组件:一个和一个vuex数据存储。您使用的是v-model=pageTitle,其中pageTitle是一个计算属性。默认情况下,计算属性仅为getter,但您试图使用v-model绑定该值

所以你需要的是一个

因此,contentsection组件应该如下所示:

const contentsection = {
    template: `<div id="content">
        Enter a page title: <input type="text" name="pageTitle" v-model="pageTitle">
    </div>
    `,
    computed: {
        pageTitle:{
            get: function(){
                return store.state.pageTitle;
            },
            set: function(newTitle){
                store.commit('pageTitle',newTitle);
            }
        }
    }
}; 
你不需要一个观察者


以下是工作原理

如果更改计算的pageTitle属性以返回此.store.state.pageTitle,会发生什么情况?我刚刚在本地计算机上尝试了此操作,但无法复制。您使用的是哪个版本的vue和vuex?@thanksd可能问题在于对计算属性使用v-model,而计算属性通常是getter。我想他应该用计算机来代替手表,这就是问题所在。事实上,记录在案,这与维克斯无关。当我拿出Vuex时,我的组件也有同样的问题。您的解决方案解决了问题,谢谢!我不知道这样使用get和set。
<div id="vue">
    <topsection></topsection>
    <contentsection></contentsection>
</div><!-- #vue -->
const contentsection = {
    template: `<div id="content">
        Enter a page title: <input type="text" name="pageTitle" v-model="pageTitle">
    </div>
    `,
    computed: {
        pageTitle:{
            get: function(){
                return store.state.pageTitle;
            },
            set: function(newTitle){
                store.commit('pageTitle',newTitle);
            }
        }
    }
};