vuejs2 - Vue:在 JS 类中使用 Vuex 存储
问题描述
我有一个 Vue 应用程序,我在其中使用 Socket.io 进行实时连接。我决定将所有 Socket 调用放入它自己的socket.js
类中,并将该类导入到我的 Vue 组件中。我已经导入了商店,但我希望能够在这个 js 文件中将数据保存到 Vuex 商店,但我不知道如何在 .vue 文件之外执行此操作。
AppSocketIO.js
import store from '../../../store';
class AppSocketIO {
init() {
this.socketIO = new AppSocketIO('kjiu887', {
// run a mutation to save data to the Vuex store
});
}
Vue组件
mounted() {
this.initSocket();
},
methods: {
initSocket: function() {
const socket = new AppSocketIO();
}
}
解决方案
这就是我会做的。将套接字保留在单独的文件中。
socket.on('message', (data) => {
store.commit('mutationName', data) // For mutations
store.dispatch('actionName', data) // For actions
})
如果您的突变/操作是命名空间的,您必须牢记这一点。
推荐阅读
- openssl - 如何在openssl中导入外部rsa公钥
- swift - string.insert(contentsOf: at:) 给出错误
- sql - 在 SQL 中计算月份之间的差异
- python - 如何有效地进行多个“不是”过滤
- xcode - 单击“同步”时 MAC 上的 Git 桌面错误
- python - 为什么这个正则表达式不匹配所有内容,直到第一个捕获组再次出现?
- delphi - Compiling\Building Delphi project on XE7 throws error - 无法访问文件 tmpXXXX.tmp.Exec.bat 因为它正在被使用
- javascript - 缩小代码后出现 Linkedin 注册按钮错误
- php - 如何检查第一个数组元素是否存在于php中其他元素的相同多维关联数组中
- ios - 如何存储单元格的选择,需要最佳实践