vue中使用socket.io后怎么在sockets获取到后台数据后,改变store中的值?

发布于 2022-09-11 15:35:47 字数 635 浏览 13 评论 0

如下设置后,能够连接上本地服务器

import store from './store'
import VueSocketio from 'vue-socket.io';
import socketio from 'socket.io-client';
Vue.use(VueSocketio, socketio('http://127.0.0.1:7777/'),store);

下一步就是获取后台数据后赋值

sockets: {
    getData: (data) => {
      console.log(this.$store); 
    }
}   

打印出undefined 。 其他地方正常使用store
试过在mounted中打印this是 VueComponent {_uid: 4, _isVue: true, $options: {…}, _renderProxy: Proxy, _self: VueComponent, …}
在sockets中打印this是{a: {…}}
a: {name: "Home", components: {…}, sockets: {…}, mounted: ƒ, methods: {…} , 是当前页面的信息。
该怎么办呢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最偏执的依靠 2022-09-18 15:35:47

this.$storeVuex为方便调用而自动注入到实例中每个子组件的store对象,其实它就是你store.js中暴露出来的那个store
在非vue实例组件中调用直接引入即可

import store from './store'

export default {
  sockets: {
    getData: (data) => {
      //store.state...
      //store.commit('')
      console.log(store);
    }
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文