# react_nodejs **Repository Path**: fw_278121/react_nodejs ## Basic Information - **Project Name**: react_nodejs - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-21 - **Last Updated**: 2025-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## zustand用法 ``` npm i zustand ``` 建立仓库 ``` import { create } from 'zustand'; const useCounterStore = create((set, get) => { return { count: 0, increase: function () { const state = get(); set({ count: state.count + 1 }); }, decrease: function () { const state = get(); set({ count: state.count - 1 }); }, reset: function () { set({ count: 0 }); }, }; }); export default useCounterStore; ``` 或 ``` import { create } from 'zustand'; const useCounterStore = create((set) => ({ count: 0, increase: () => set((state) => ({ count: state.count + 1, })), decrease: () => set((state) => ({ count: state.count - 1, })), reset: () => set(() => ({ count: 0, })), })); export default useCounterStore; ``` 使用仓库 ``` import useCounterStore from './useCounterStore'; function Counter() { const { count, increase, decrease, reset } = useCounterStore(); return (

Count: {count}

) } ``` 或 ``` import useCounterStore from './useCounterStore'; function Counter() { const { count, increase, decrease, reset } = useCounterStore((state) => ({ count: state.count, increase: state.increase, decrease: state.decrease, reset: state.reset, })); return (

Count: {count}

) } ``` ## 客户端ws ```js //用于创建一个新的 WebSocket 连接。 url 是 WebSocket 服务器的地址。 const ws = new WebSocket("ws://localhost:3000"); //当 WebSocket 连接成功建立时触发。可以在这里执行一些初始化操作,比如发送初始数据。 ws.onopen // 当从服务器接收到消息时触发。可以在这里处理接收到的数据。 ws.onmessage // 当 WebSocket 连接关闭时触发。可以在这里执行一些清理操作。 ws.onclose // 当 WebSocket 连接发生错误时触发。可以在这里处理错误。 ws.onerror ``` ## 服务端 ```js const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 3000 }); wss.on("connection", (ws, req) => { console.log("客户端已连接"); // 当客户端发送消息时触发,可以在这里处理接受的消息。 ws.on("message", (message) => { console.log(`Received message => ${message}`); chartData = JSON.parse(message); wss.clients.forEach((client) => { if (client.readyState === WebSocket.OPEN) { // 发送消息给所有连接的客户端 client.send(JSON.stringify(chartData)); } }); }); ws.send(JSON.stringify(chartData)); }); ``` ``` 在 WebSocket 通信中,客户端和服务端的方法有一些区别。以下是一些关键的区别和常用的方法: ### 客户端方法 1. new WebSocket(url) : - 用于创建一个新的 WebSocket 连接。 url 是 WebSocket 服务器的地址。 2. ws.onopen : - 当 WebSocket 连接成功建立时触发。可以在这里执行一些初始化操作,比如发送初始数据。 3. ws.onmessage : - 当从服务器接收到消息时触发。可以在这里处理接收到的数据。 4. ws.onclose : - 当 WebSocket 连接关闭时触发。可以在这里执行一些清理操作。 5. ws.onerror : - 当 WebSocket 连接发生错误时触发。可以在这里处理错误。 6. ws.send(data) : - 用于向服务器发送数据。 data 可以是字符串、Blob 或 ArrayBuffer。 ### 服务端方法 在 Node.js 中,通常使用 ws 库来处理 WebSocket 连接。以下是一些常用的方法: 1. wss.on('connection', callback) : - 当有新的客户端连接时触发。 callback 函数接收一个 WebSocket 对象作为参数。 2. ws.on('message', callback) : - 当接收到客户端发送的消息时触发。可以在这里处理接收到的数据。 3. ws.send(data) : - 用于向客户端发送数据。 data 可以是字符串或 Buffer。 4. ws.on('close', callback) : - 当连接关闭时触发。可以在这里执行一些清理操作。 5. ws.on('error', callback) : - 当连接发生错误时触发。可以在这里处理错误。 ```