0.0.3 • Published 11 months ago

happy-react-hooks v0.0.3

Weekly downloads
-
License
ISC
Repository
github
Last release
11 months ago

描述

happy-react-hooks 是一个 React Hook 工具库。

Hooks 目录

hooks
├─ useAutoFit.js
└─ useWebSocket.js

Hooks 介绍

1. useAutoFit

介绍

一个用来自适应多屏幕的 Hook。

import { useAutoFit } from 'happy-react-hooks';

const App = () => {
  useAutoFit(1920, 1080, 'screen');

  return (
    <div style={{ backgroundColor: 'red' }} id='screen'>
      测试
    </div>
  );
};
render(<App />, document.getElementById('root'));

入参

属性描述类型默认值
width设计稿宽度number1920
height设计稿高度object1080
screenDom用来缩放的 dom 元素,一般是根元素string / dom 元素"root"
debounceInterval防抖时间间隔, 避免频繁触发number0

返回值

返回值为空

2. useWebSocket

介绍

封装 websocket 操作的 Hook。

import { useWebSocket } from 'happy-react-hooks';

const WEBSOCKET_URL = 'ws://10.2.2.224:8888';

export default function WebsocketDemo() {
  const { readyState, message, sendMessage } = useWebSocket(WEBSOCKET_URL, {
    interval: 60 * 1000, // 心跳时间间隔
    send: 'heartBeat', // 心跳时候发送给服务端的数据
    res: 'still in connect', // 心跳连接正常收到服务端的数据
    timeout: 15 * 1000 // 超时时间,如果发送完数据15秒内没有收到服务端的响应(still in connect),就认为已断开连接,则重新连接
  });

  useEffect(() => {
    if (readyState === 1) {
      sendMessage('connect ok');
    }
  }, [readyState]);

  useEffect(() => {
    console.log('message', message);
  }, [message]);

  // ...
}

入参

属性描述类型默认值
urlwebsocket 地址string无默认值,不可为空
heartBeatOptions心跳参数,为空表示不使用心跳。 {interval: 心跳间隔, send: 发送内容, res: 服务端返回内容, timeout: 超时时间,超过这个时间说明连接已断开,则会重新连接}object默认为空

返回值

属性描述类型
readyStatewebsocket 状态的 readyState, 1 代表连接成功,3 代表已关闭。是一个 React state,可以 useEffect 直接监听React state
message接收到的数据, 是一个 React state,可以 useEffect 直接监听React state
sendMessage向服务端发送数据的方法object
0.0.3

11 months ago

0.0.2

11 months ago

0.0.1

11 months ago