1.0.4 • Published 4 years ago

sugar-hox-devtools v1.0.4

Weekly downloads
2
License
ISC
Repository
github
Last release
4 years ago

SugarHoxDevTools 👋

npm.io npm.io npm.io npm.io npm.io

相关说明

  • SugarHoxDevTools是一个组件,用于展示被 createModel 包裹的数据。更多功能计划中

  • 修改了 hox 一小部分源码,如果依赖 hox 包,那么得在打包的时候,webpack 注入我自己修改的部分代码,相对麻烦,成本也高。于是邮箱问过 umi/hox的开发者之一brickspert,经过同意且此仓库为 MIT 协议,所以 fork 了此仓库并拉取源码进行修改,相关 API 仍保持与 hox 一致

  • 之所以做这个 devTools,原因在于我们使用了 createModel 包裹之后,不知道这个数据是否真的被持久化、全局共享,只能通过在组件中 import 这个数据源,然后 console.log 打印,然后看是否真的被修改。

  • 还有就是当其他人接收之后,他想获取一些已经存在于全局共享的 Model,并没有一个展示全局共享数据的 Model,所以 SugarHoxDevTools 出生了。

如何使用

与你正常写 hooks,使用 hox 一样,只要经过 createModel 包裹后的 hooks,修改数据源之后,可以在 devtools 组件中,实时看到对应 model 的变化哦~

快速开始

安装

npm install sugar-hox-devtools --save

创建一个 model

这里的说明拷至 hox 文档,更多详情点击这里访问

import { useState } from 'react'
import hoxAPI from 'sugar-hox-devtools'

function useCounter() {
  const [count, setCount] = useState(0)
  const decrement = () => setCount(count - 1)
  const increment = () => setCount(count + 1)
  return {
    count,
    decrement,
    increment,
  }
}

useCounter.namespace = 'useCounter' // 这里需要给每一个 model 都添加命名空间标识

export default hoxAPI.createModel(useCounter)

使用 model

这里的说明拷至 hox 文档,更多详情点击这里访问

// 在组件中调用这个 Hook ,就可以获取到 model 的数据了。
import counterModel from '../models/counter'

function App(props) {
  const { counter, increment, decrement } = counterModel()
  return (
    <div>
      <p>{counter}</p>
      <button onClick={decrement}>-1</button>
      <button onClick={increment}>+1</button>
    </div>
  )
}

开启 DevTools

sugar-hox-devtools 抛出一个组件,调用此组件即可;所有经过createModel包裹后的 model,都会被注入添加到 window.sugarHox 上。控制台打印 window.sugarHox 就能拿到数据。

import React, { useState } from 'react'
import sugar from 'sugar-hox-devtools'

const SugarHoxDevTools = sugar.SugarHoxDevTools

function App() {
  const [showDevTools, setShowDevTools] = useState(true)

  return (
    <div>
      ...
      {showDevTools && (
        <SugarHoxDevTools onClose={() => setShowDevTools(false)} />
      )}
    </div>
  )
}

组件参数

参数说明类型默认值
title自定义stringsugar-hox-devtools
closeIcon关闭 iconReactNodeX
onClose点击 closeIcon 方法() => void-
maxScrollHeight容器滚动的最大高度number200

部分截图

Maintainers

@PDKSophia

@SugarTurboS

Contributing

PRs accepted.

License

MIT © 2020 PDKSophia/SugarTurboS

Related Links