tiny jsx
1.1.9
TinyJSX是一个轻巧的UI JavaScript库,用于使用功能组件开发用户界面。
GZIP包装尺寸
brotli套餐的大小
TinyJSX暴露了一个API,该API模拟了最近的React钩子实现,但实际上很小。
TinyJSX仅支持功能组件。
import TinyJSX from 'tiny-jsx' ;
import { render } from 'tiny-jsx/dom' ;
import useEffect from 'tiny-jsx/hooks/useEffect' ;
import useState from 'tiny-jsx/hooks/useState' ;
function Clock ( ) {
const [ tick , setTick ] = useState ( 0 ) ;
useEffect ( ( ) => {
const interval = setInterval ( ( ) => {
setTick ( tick + 1 ) ;
} , 1000 ) ;
return ( ) => clearInterval ( interval ) ;
} , [ tick ] ) ;
return (
< div > Seconds: { tick } </ div >
) ;
}
render ( < Clock /> , document . body ) ;对于较小的捆绑尺寸,所有钩子都是单独出口的。您仍然可以从上述示例中导入钩子:
import { useState , useEffect } from 'tiny-jsx/hooks' ; 在示例目录中可以找到一些简单的示例。您还可以在此处使用UMD构建看到库:
使用yarn或npm的nodejs
$ yarn add tiny-jsx
or
$ npm install --save tiny-jsx或在浏览器中
< script defer type =" text/javascript " src =" https://unpkg.com/tiny-jsx@latest/tiny-jsx.min.js " > </ script >
< script defer type =" text/javascript " src =" https://unpkg.com/tiny-jsx@latest/tiny-jsx-hooks.min.js " > </ script >
< script defer type =" text/javascript " src =" https://unpkg.com/tiny-jsx@latest/tiny-jsx-dom.min.js " > </ script >
< script defer type =" text/javascript " src =" https://unpkg.com/tiny-jsx@latest/tiny-jsx-router.min.js " > </ script >tiny-jsx库允许使用命名和默认导出。
import { createElement } from 'tiny-jsx' ;
// Tell Babel to transform JSX into createElement() calls:
/** @jsx createElement */ import TinyJSX from 'tiny-jsx' ;
// Tell Babel to transform JSX into TinyJSX.createElement() calls:
/** @jsx TinyJSX.createElement */而不是声明@jsx Pragma,您可以通过将其添加到Babel配置文件中在全球使用它
对于Babel 5和先验:
{ "jsxPragma" : " TinyJSX.createElement " }对于babel 6:安装转换 - 反应-JSX插件,然后将其添加到配置文件中:
{
"plugins" : [
[ " transform-react-jsx " , { "pragma" : " TinyJSX.createElement " }]
]
}对于Babel 7:安装 @babel/plugin-transform-react-jsx插件,然后将其添加到配置文件中:
{
"plugins" : [
[ " @babel/plugin-transform-react-jsx " , { "pragma" : " TinyJSX.createElement " , "pragmaFrag" : " TinyJSX.Fragment " }]
]
}对于打字稿,添加到tsconfig.json :
{
"jsx" : " react " ,
"jsxFactory" : " TinyJSX.createElement "
}tinyjsx transpile函数将JSX组件转换为虚拟DOM元素(如下所述) 。为了在浏览器中渲染虚拟DOM元素,TinyJSX提供了render()函数,该函数可创建相应的DOM树并将其从现有DOM树中渲染为元素。
import TinyJSX from 'tiny-jsx' ;
import { render } from 'tiny-jsx/dom' ;
render ( < div > Hello World! </ div > , document . body ) ;