【发布时间】:2019-02-19 20:48:06
【问题描述】:
伙计们,
我正在开始 electron-vuejs 桌面应用程序编程。我正在通过自学示例了解vuex 的工作原理。这是我的问题:
我有一个组件,它的模板是,
<template>
<div id="wrapper">
<main>
<div class="left-side">
<span class="title">
<h2>{{ titleName }}</h2>
</span>
</div>
</main>
对应的脚本部分如下,
<script>
import { mapState } from 'vuex'
export default {
name: 'game-page',
computed: mapState([ 'titleName' ]) // map this.title to store.state.title
}
</script>
我在store.js 中定义了titleName 属性,该属性位于./store/modules/store.js 中,其内容相同:
cont state = {
titleName: 'Welcome to planet earth'
}
export default {
state
}
一切正常:从某种意义上说,我在vue-devtools 控制台中没有收到任何错误/警告消息。我可以在控制台中看到store.js 中定义的vuex 状态。但是,我没有得到组件中呈现的标题。
我的理解是mapState从store中获取属性并绑定到组件中的变量。有了这样的理解,我没有定义gettr,但是,它似乎没有发生。
我一定是在做一些愚蠢的事情或遗漏了一些明显的事情。有人可以阐明如何解决/解决此问题吗? Vue-2.5.17 是我正在使用的。
编辑:
这就是我的index.js,
import Vue from 'vue'
import Vuex from 'vuex'
import state from './modules/store.js'
Vue.use(Vuex)
export default new Vuex.Store({
modules: {
state
},
strict: process.env.NODE_ENV != 'production'
})
我的目录结构是,
src
├── index.ejs
├── main
│ ├── index.dev.js
│ └── index.js
└── renderer
├── App.vue
├── assets
│ └── logo.png
├── components
│ ├── StonePaperScissors
│ │ └── GameStates.vue
│ └── StonePaperScissors.vue
├── main.js
├── router
│ └── index.js
└── store
├── index.js
├── modules
├── index.js
└── store.js
【问题讨论】:
-
您的商店是否将
titleName加载为模块? -
我已添加,我如何在我的问题中加载商店。我是初学者。在适当的背景下,我不太了解您的问题。
-
是的,在网上浏览和阅读后,它作为一个模块加载。
标签: javascript vue.js electron vuex