cyl-hooks-tools
首页
  • useApi
  • useCo
  • useCollector
  • useWebsocket
  • useIndexedDB
  • NinePatch
  • parseJsonGraceful
  • sleep
  • logger
  • makeFriendly
  • formatSeconds
  • Uint8ArrayToString
  • dataSourceSliceOfECharts
  • ninePath
更新日志
首页
  • useApi
  • useCo
  • useCollector
  • useWebsocket
  • useIndexedDB
  • NinePatch
  • parseJsonGraceful
  • sleep
  • logger
  • makeFriendly
  • formatSeconds
  • Uint8ArrayToString
  • dataSourceSliceOfECharts
  • ninePath
更新日志

cyl-hooks-tools

基于react上下文实现的权限管理工具,并且内置多种功能模块,功能组件

开始使用 →


# 安装

    yarn add cyl-hooks-tools 
    
    pnpm add cyl-hooks-tools 
    
    cnpm install cyl-hooks-tools --save
    
    npm install cyl-hooks-tools --save
    
    // Make sure to add code blocks to your code group

    # 初始化

    注意

    初始化操作必须按照如下进行

      import { createHttpClient,IHttpClient } from "cyl-hooks-tools"
      // 创建http服务 【基于axios】
      // 这个是cyl-hooks-tools 提供的简便的的创建http服务方法 ,
      //当然可以不使用这个方法,只要自定义的httpClient实现了 get post delete put request 这个几个方法就好
      // 注意: httpClient 必须实现get post delete put request 否则将无法进行之后的步骤
      const httpClient = createHttpClient((axios)=>{
        axios.interceptors.response.use(res=>{
          return res.data
        },err=>{
          console.error(err)
        })
      
        return axios
      })
      export default httpClient
      
      import ReactDOM from 'react-dom/client'
      import request from "./request.ts"
      import { ApiProvider } from "cyl-hooks-tools"
      
      function Component(){
        return <div>component</div>
      }
      
      
      ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
        // 最外层必须使用ApiProvider包裹
        <ApiProvider<IHttpClient,object> httpClient={request} initAuth={{
          id:1
        }}>
          <Component />
        </ApiProvider>,
      )
      
      // Make sure to add code blocks to your code group

      # 使用

        
        import {IHttpClient,IContext} from "cyl-hooks-tools"
        
        
        
        export interface Test {
            id:number
            name:string
            createTime:number
        }
        
        export function getTest(ctx:IContext<IHttpClient,object>):Promise<Test>{
          return ctx.get("https://chuyanlon.github.io/cyl-hooks-tools-doc/api/test.json")
        }
        
        
        
        import {IHttpClient,IContext,useApi,useApiState} from "cyl-hooks-tools"
        import {getTest} from "./test.ts"
        
        
        function Component() {
          const api = useApi<IContext<IHttpClient,object>>();
          const [test] = useApiState(api,getTest)
          return (
            <div>
                测试id{test?.id}
                测试名字{test?.name}
            </div>
          )
        }
        
        export default Component
        
        
        // Make sure to add code blocks to your code group
        Theme by Vdoing | Copyright © 2023-2025 cyl-hooks-tools
        • 跟随系统
        • 浅色模式
        • 深色模式
        • 阅读模式