vue.js - 如何在入口 js 中包含 JS 并从其他组件访问它
问题描述
我希望能够在我的 Vue 组件中使用 Socket.IO 实例,我不想import io from 'socket.io-client'
在每个组件文件中都使用,所以我认为我应该能够将它导入到我的“main.js”文件中并使用它其他任何地方。
到目前为止,我已经看到了几个答案,但似乎没有一个有效
我试图包括
import io from 'socket.io-client'
...
var sock = io('localhost:3000')
export const globalStore = new Vue({
data: {
sock: sock
}
})
在我的 main.js 中并称之为
import {globalStore} from '../main.js'
const SOCK = globalStore.sock
但我仍然得到
Uncaught ReferenceError: sock is not defined at Object.login
当我尝试做
SOCK.emit()
我希望能够包含一个 JS 文件(不仅仅是 socket.io),然后从任何地方调用它。
解决方案
你可以将你的 sock 绑定到 VueJS 原型:
// main.js file
import Vue from 'vue'
import io from 'socket.io-client'
const sock = io('localhost:3000')
Vue.prototype.$sock = sock
new Vue({
...
})
然后,您可以像这样在组件中访问它:
export default {
created () {
console.log(this.$sock)
}
}
推荐阅读
- python - 使用 numba @jit 加速我使用队列的多处理循环
- mapbox-gl-js - 根据经度和纬度获取查询RenderedFeatures的Mapbox点
- python - 从参数或同一类初始化 Python 类
- here-api - 具有自由格式输入 Geocoder API 的 Geogode 街道交叉口
- php - if/else 在 php 的 foreach 循环中不起作用
- clojure - Clojure:合并 2 个地图向量
- javascript - 将图像缓冲区发送到 node.js tcp 服务器
- python - 如何计算字符串中至少出现一次的单词数?
- c++ - 用 std::swap 交换二维数组中的行。它是如何工作的?
- node.js - 通过 net.socket 发送文件