2.0.1 • Published 3 years ago

@link-hooks/jsx v2.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

DEMO

npm install @link-hooks/jsx
import jsx from "@link-hooks/jsx.esm";

const wf = "world";

jsx`
    <div a=1 b=c>
        Hello <strong>${wf}</strong>
    </div>
`;

// out:
// {
//   t: 'div',
//   p: { a: '1', b: 'c' },
//   sIs: 1,
//   sIe: 12,
//   c: [
//     'Hello',
//     {
//       t: 'strong',
//       p: {},
//       sIs: 33,
//       sIe: 39,
//       c: ['world'],
//       _jsx: true,
//       eIs: 47,
//       eIe: 53
//     }
//   ],
//   _jsx: true,
//   eIs: 65,
//   eIe: 68
// }

const R = ({ c }) => jsx`<div>${c}</div>`;
const o = { d: 1 };

jsx`
    <${R}>
        <div a=${o} />
        <div b=4/>
    </${R}>
`;
// out:
// {
//   t: [Function: R],
//   p: {},
//   c: [
//     {
//       t: 'div',
//       p: { a: { d: 1 } },
//       c: [],
//       sIs: 19,
//       sIe: 32,
//       eIs: 33,
//       eIe: 34,
//       _jsx: true
//     },
//     {
//       t: 'div',
//       p: { b: '4' },
//       c: [],
//       sIs: 49,
//       sIe: 55,
//       eIs: 56,
//       eIe: 57,
//       _jsx: true
//     }
//   ],
//   sIs: 1,
//   sIe: 4,
//   _jsx: true,
//   eIs: 69,
//   eIe: 72
// }
const ar = ["Hello", "World"];
jsx`
    <div>
        ${ar}
    </div>
`;
// {
//   t: 'div',
//   p: {},
//   c: [ 'Hello', 'World' ],
//   sIs: 1,
//   sIe: 4,
//   _jsx: true,
//   eIs: 36,
//   eIe: 39
// }

Upgrade

V1: 使用 String 的概念,对于整个 Args 都字符串化,以便于算法指针移动

优点:速度稍微快一些

缺点:需要对 Args 去字符串化处理存在 key 的处理

V2: 使用 Array String 概念,对于两个 Item 间隔插入 Arg,动态的计算指针移动

优点:不用处理 Args 字符串化

缺点:速度可能会慢

2.0.1

3 years ago

1.2.3

3 years ago

1.2.0

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.0.0

3 years ago