jsx-web-compiler
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

jsx-web-compiler

transform jsx to js by using @babel/standalone

使用说明

import { compile } from 'jsx-web-compiler';

const name = 'world';
const code = `<div>hello, ${name}</div>`;

console.log(compile(code));

这将输出:

/*#__PURE__*/ React.createElement('div', null, 'hello, world');

Dom 事件

因为输入是 jsx 代码,所以 class 需要写成 className,另外事件需要满足 React Dom Event 命名规范,例如 onClickonChange 等。

上下文

compile 函数接收第二个参数,你可以将你的 context 传入其中,并通过 context 关键字在字符串中使用。默认为 window。

import { compile } from 'jsx-web-compiler';

window.sayHello = funcion() {
  console.log('hello', this)
}

// 可通过 context 关键字来访问上下文
const code = `<div className='main' onClick={context.sayHello}>click it</div>`;

console.log(compile(code, window));

任意参数

compile 函数接受任意个参数,从第三个参数开始,会将其作为参数传入,使用者可通过 arguments 关键字访问到从第三个开始的所有参数。

import { compile } from 'jsx-web-compiler';

function sayHello() {
  console.log('hello', this);
}

// 关键字 arguments 表示传入 compile 函数的第三个开始的所有参数,可通过如下的下标访问
const code = `<div className='main' onClick={arguments[0]}>click it</div>`;

console.log(compile(code, null, sayHello));

Readme

Keywords

none

Package Sidebar

Install

npm i jsx-web-compiler

Weekly Downloads

16

Version

1.0.2

License

MIT

Unpacked Size

5.99 kB

Total Files

7

Last publish

Collaborators

  • netease-yunxin