0.1.4 • Published 2 years ago

@jugar/jsx-runtime v0.1.4

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

How to use jsx-runtime

  • CMD
npm install @jugar/jsx-runtime
  • tsconfig.json
{
  "compilerOptions": {
    /** JSX */
    "jsx": "preserve",
    "jsxFactory": "html5",
    "jsxFragmentFactory": "fragment",
    "jsxImportSource": "@jugar"
  }
}
  • vite-env.d.ts
/// <reference types="@jugar/jsx-runtime" />
  • vite.config.ts
import { defineConfig } from 'vite'

// https://vitejs.dev/config/
export default defineConfig({
  esbuild: {
    jsx: 'transform',
    jsxFactory: 'html5',
    jsxFragment: 'fragment',
    jsxInject: `import { html5, fragment } from '@jugar/jsx-runtime'\n\n`,
  },
})

How to use signal

import { createSignal } from '@jugar/jsx-runtime'

export function HelloWorld() {
  const count = createSignal(0)

  return (
    <div className="jsx-runtime-demo">
      <button
        onclick={() => {
          count.set(count.get() + 1)
        }}
        ref={(elm) => {
          count.relay(elm, 'title')
        }}
        type="button"
      >
        Increase
      </button>
      <input
        id="count"
        name="count"
        ref={(elm) => {
          count.sync(elm)
        }}
        type="number"
        value={count.get()}
      />
      <span
        ref={(elm) => {
          count.relay(elm, 'text', 'Current: ${self}')
        }}
      >
        {count.get()}
      </span>
    </div>
  )
}

Methods

NameDescriptionParameters
getGet Currrent State With Optional Templatetemplate
referRefer Element Event Data Into Stateelement, eventName
relayRelay State Into Element's Property With Optional Templateelement, propName, template
setSet Statenext
syncBind State With <input> by value Propertyelement
0.1.2

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.0

2 years ago

0.1.1

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago