suika
TypeScript icon, indicating that this package has built-in type declarations

1.5.4 • Public • Published

GitHub Workflow Status npm GitHub codecov

Suika is a lightweight component based Javascript library for building user interfaces, that relies on a virtual DOM with JSX support.

Installation

You can use suika as a package on npm

npm install suika@latest

Documentation

Please follow the documentation at jonwatkins.github.io/suika/.

Example

A simple todo example can be found here. Or you can checkout the repo here.

Usage

The easiest way to use Suika is to use the vite bundler.Below is an example vite.config.js for bundling a Suika application.

import { defineConfig } from "vite";

export default defineConfig(() => {
  return {
    build: {
      outDir: "./dist",
    },
    esbuild: {
      jsxFactory: "h",
      jsxFragment: "Fragment",
    },
  };
});

By default Vite will use the src/index.ts file for the bundle. Below is an example of a simple index.ts and App.tsx file for a Suika application.

import { mount } from "suika";
import { App } from "./App";
const el = document.querySelector("#app");
mount(App, el as HTMLElement);

App.tsx

import { App, Component, mount, h, reactive } from "suika";

export default class App extends Component {
  state = reactive({
    count: 0,
  });
  render() {
    return (
      <div id="counter">
        <h1 className="title">Count: {this.state.value.count.toString()}</h1>
        <button onclick={() => this.state.value.count++}>Inc</button>
      </div>
    );
  }
}

mount(App, root);

License

MIT

Copyright (c) 2023-present, Jon Watkins

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i suika

      Weekly Downloads

      2

      Version

      1.5.4

      License

      MIT

      Unpacked Size

      124 kB

      Total Files

      7

      Last publish

      Collaborators

      • jonwatkins