Vue3实现WebSocket 通信
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
在Vue 3中,使用`<script setup>`语法糖可以更加简洁地编写组件。这种语法允许你直接在`<script>`标签内定义组件的逻辑,而不需要传统的`export default`语句。下面是如何使用`<script setup>`来实现WebSocket通信的示例:
### 1. 安装WebSocket库
如果你还没有安装`socket.io-client`,请先安装它。
npm install socket.io-client
# 或者
yarn add socket.io-client
### 2. 创建WebSocket连接
在`<script setup>`中,你可以创建WebSocket连接,并在生命周期钩子(如`onMounted`)中处理连接和断开逻辑。
```vue
<template>
<div>
<button @click="connect">连接</button>
<button @click="disconnect">断开连接</button>
</div>
</template>
<script setup>
import { onMounted, ref } from 'vue';
import io from 'socket.io-client';
const socket = ref(null);
onMounted(async () => {
socket.value = io('http://localhost:3000'); // 替换为你的服务器地址
console.log('Connected to server');
// 监听连接事件
socket.value.on('connect', () => {
console.log('Connected to server');
});
// 监听消息事件
socket.value.on('message', (data) => {
console.log('Received message from server:', data);
});
// 监听错误事件
socket.value.on('error', (error) => {
console.error('WebSocket error:', error);
});
});
const connect = () => {
socket.value.connect();
};
const disconnect = () => {
if (socket.value) {
socket.value.disconnect();
console.log('Disconnected from server');
}
};
</script>
```
### 3. 发送和接收消息
在`<script setup>`中,你可以直接在`socket`对象上调用方法来发送和接收消息。
```vue
<template>
<input v-model="message" placeholder="Type a message" />
<button @click="sendMessage">Send</button>
</template>
<script setup>
import { onMounted, ref } from 'vue';
import io from 'socket.io-client';
const socket = ref(null);
const message = ref('');
onMounted(async () => {
socket.value = io('http://localhost:3000');
// ... 连接事件处理
});
const sendMessage = () => {
if (message.value.trim()) {
socket.value.emit('message', message.value);
message.value = '';
}
};
</script>
```
### 4. 关闭WebSocket连接
在组件卸载时,应该关闭WebSocket连接。
```javascript
onBeforeUnmount(() => {
if (socket.value) {
socket.value.close();
}
});
```
### 5. 使用WebSocket
你可以在组件的任何部分使用`socket`来发送或接收消息。
以上就是在Vue 3中使用`<script setup>`语法实现WebSocket通信的基本步骤。根据你的项目需求,你可以进行相应的调整和扩展。记得在实际部署时,将WebSocket服务器的地址替换为你的实际地址,并根据需要处理连接、消息和错误事件。
GitHub 加速计划 / vu / vue
207.55 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:3 个月前 )
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 5 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 6 个月前
更多推荐
已为社区贡献11条内容
所有评论(0)