Electron + Vuex 的一些新手爬坑流水

最近连着用 Electron + Vuex 做了两个客户端软件,记录一点新手期容易掉的坑。

问题表现 原因 解决方案
dispatch mutation 调用 action 方法时,不起作用调用失败 用 vue-cli 构建的配置里,默认使用了 createSharedMutations 插件 不使用这个插件,或者去看插件的官方文档,有详细的解决方案
form 表单数据双向绑定报错(无法使用 v-model 绑定数据) 在 vuex 严格模式下,只能通过 mutation 改变 state 里的对象数据。而 v-model 试图直接修改 store 对象,所以报错 采用 :value 来绑定数据,然后在 change 事件中提交 mutation 来动态改变数据
router push 跳转组件失效 没有配置路由清单 在 router/index.js 中配置组件的路由信息
设置默认全屏启动程序失败 在初始化 mainWindow 明确定义了窗口的 width、height 值 去掉这段设置代码
未修改 state 值却错,报错内容指出在 mutations 外修改了 state 值 在 mutation 外获取 state 里的数据值时,直接为变量赋值目标对象,之后改变这个变量的值,发生引用修改导致报错 获取 state 里的对象时,给变量复制对象的拷贝而非对象本身
修改了 state 里的数据,视图里数据却没有跟着变化 在改变对象类型的数据时,采用了直接赋值更新整个对象的方式 修改对象中哪个属性就只修改那一个属性,或者使用 Vue.set 方法
程序打包后安装运行报错或样式丢失 通常是因为静态资源如:图片、样式文件等没有放到 static 目录下 将这些资源移动到 static 文件下
视图渲染报错:Failed to mount component: template or render function not defined. 配置组件属性关键字错误

修该 component 为 components 

其实许多问题官网文档里都有说明,只是作为新手遇到时不一定能想起来,也不一定知道就是那个问题。