olegstepura / babel-plugin-jsx-if-directive

🍺 A "if" directive solution for React.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Using "if" directive in JSX

GitHub stars GitHub forks npm npm npm

A easy-to-use "if" directive solution for front-end frameworks using JSX like React.

See Also:

1. Install

npm install --save-dev babel-plugin-jsx-if-directive

2. Basic Usage

Edit your .babelrc file:

{
  "plugins": [
    "jsx-if-directive"
  ]
}

In your jsx file:

class App extends React.Component {
    constructor(props) {
        super(props);
        this.ageChangeHandler = this.ageChangeHandler.bind(this);
        this.state = {
            age: 21
        }
    }
    
    ageChangeHandler(e) {
        this.setState({
            age: e.target.value
        })
    }

    render() { return (
        <div>
            <h1 if={this.state.age % 2 === 0}>I'm {this.state.age} year's old.</h1>
            <input
                type="number"
                placeholder="Age"
                onChange={this.ageChangeHandler}
            />
        </div>
    )}
}

3. Usage with custom attribute name

Edit your .babelrc file:

{
  "plugins": [
    "jsx-if-directive", 
    { 
      "attrName": "r-if" 
    }
  ]
}

In your jsx file:

class App extends React.Component {
    constructor(props) {
        super(props);
        this.ageChangeHandler = this.ageChangeHandler.bind(this);
        this.state = {
            age: 21
        }
    }
    
    ageChangeHandler(e) {
        this.setState({
            age: e.target.value
        })
    }

    render() { return (
        <div>
            <h1 r-if={this.state.age % 2 === 0}>I'm {this.state.age} year's old.</h1>
            <input
                type="number"
                placeholder="Age"
                onChange={this.ageChangeHandler}
            />
        </div>
    )}
}

About

🍺 A "if" directive solution for React.


Languages

Language:JavaScript 100.0%