TinyJSX adalah pustaka JavaScript UI ringan untuk mengembangkan antarmuka pengguna menggunakan komponen fungsional.
Ukuran paket GZIP
Ukuran paket Brotli
TinyJSX memaparkan API yang meniru implementasi react hooks baru -baru ini tetapi sangat kecil.
TinyJSX hanya mendukung komponen fungsional.
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 ) ;Untuk ukuran bundel yang lebih kecil, semua kait diekspor sendiri. Anda masih dapat mengimpor kait dari contoh di atas seperti ini:
import { useState , useEffect } from 'tiny-jsx/hooks' ; Beberapa contoh sederhana dapat ditemukan di direktori contoh. Anda juga dapat melihat perpustakaan yang beraksi menggunakan build UMD di sini:
Saat menggunakan nodeJs dengan yarn atau npm
$ yarn add tiny-jsx
or
$ npm install --save tiny-jsxatau di browser
< 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 > Perpustakaan tiny-jsx memungkinkan untuk menggunakan ekspor bernama dan default.
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 */ Alih -alih mendeklarasikan pragma @jsx Anda dapat menggunakannya secara global dengan menambahkannya ke file konfigurasi Babel Anda
Untuk Babel 5 dan Prior:
{ "jsxPragma" : " TinyJSX.createElement " }Untuk Babel 6: Instal plugin Transform-React-JSX dan tambahkan ke file konfigurasi:
{
"plugins" : [
[ " transform-react-jsx " , { "pragma" : " TinyJSX.createElement " }]
]
}Untuk Babel 7: Instal plugin @babel/plugin-transform-react-jsx dan tambahkan ke file konfigurasi:
{
"plugins" : [
[ " @babel/plugin-transform-react-jsx " , { "pragma" : " TinyJSX.createElement " , "pragmaFrag" : " TinyJSX.Fragment " }]
]
} Untuk naskah tambahkan ke tsconfig.json :
{
"jsx" : " react " ,
"jsxFactory" : " TinyJSX.createElement "
} Fungsi transpile TinyJSX mengubah komponen JSX menjadi elemen DOM virtual (seperti yang dijelaskan di sini) . Untuk membuat elemen DOM virtual dalam browser, TinyJSX menyediakan fungsi render() yang menciptakan pohon DOM yang sesuai dan membuatnya menjadi elemen dari pohon DOM yang ada.
import TinyJSX from 'tiny-jsx' ;
import { render } from 'tiny-jsx/dom' ;
render ( < div > Hello World! </ div > , document . body ) ;