Giter Club home page Giter Club logo

lsx's Introduction

! This plugin is written LiveScript, you need to install LiveScript. LiveScript is a language which compiles to JavaScript.

{ render } = require 'react-dom'
{ createClass, div, a, p } = require 'lsx'


main = createClass do

    render : ->
        div [],
            a [] 'hello'
            p [] 'world'

window.onload = ->

    'app' |> document.createElement
          |> document.body.appendChild
    render do
        main []
        'app' |> document.querySelector

Object Oriented Programming

{ createClass, Component, div, a, p } = require 'lsx'

main = createClass class Main extends Component

    render : ->
        div [],
            a [] 'hello'
            p [] 'world'

Installation

yarn install lsx
npm i lsx

Usage

1 import plugin 'lsx'.

{ createClass, div, a, p } = require 'lsx'

2 create class and bind. (example:Main)

Main = createClass do

    render : ->
        div [],
            p [] 'hello'
            a [] 'world'

3 render.

{ render } = require 'react-dom'
render do
    Main []
    'app' |> document.querySelector

Function

component

div [] 'hello,world'

# <div>hello,world</div>

null contents component

div []

# <div />

nest component

div [],
    p []
    p [] 'hello,world'

# <div>
#     <p />
#     <p>hello,world</p>
# </div>

set props and style, etc..

div [ test-prop : 'test'
    , onClick : @test-func
    , style :
      height : 200
      width : 200 ] 'hello,world'

# <div test-prop = "test"
#      onClick = {this.testFunc}
#      style = {
#          height:200
#          width:200
#      }>
#     hello,world
# <div>

use component and set prop-types

{ createClass, type, div } = require 'lsx'


test-component = createClass do

    prop-types =
        test-class : type.string

    get-default-props = ->
        test-class : 'default'

    render : ->
        div [ class-name: @props.test-class ] @props.children

Main = createClass do

    render: ->
        div [],
            test-component [ test-class: 'test' ] 'hello,world'

use plain component

plain-component = React.createClass do
    render : ->

        React.DOM.div null, 'hello,world'

component = createClass plain-component


ReactDOM.render do
    component []
    'app' |> document.querySelector

use with React.createClass

plain-component = React.createClass do
    test-component []
    render : ->
        div [] 'hello,world'

lsx's People

Contributors

reiwa avatar unclechu avatar uufish avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

flyber-net

lsx's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.