[React] React Fundamentals: with-addons - ReactLink

It can be tedious to type out all the boilerplate needed to get the DOM and states in React to synchronize. Luckily, React provides a version of the toolkit with a selection of available addons. This lesson is going to dig into ReactLink, and how this addon can give you two-way binding.

复制代码
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>React Lesson 15: dynamically create componenets</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.12.2/react.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.12.2/JSXTransformer.js"></script>
    <style>
        body {
            margin: 25px;
        }
    </style>
</head>
<body>
<div id="panel"></div>
<script type="text/jsx">
    /** @jsx React.DOM */

    var App = React.createClass({
        getInitialState:function(){
            return {
                name: '',
                email: ''
            }
        },
        update: function () {
           this.setState({
               name: this.refs.name.getDOMNode().value,
               email: this.refs.email.getDOMNode().value
           })
        },
        render:function(){
            return (
                <form>
                    <div>
                        <input type="text" ref="name" onChange={this.update} placeholder="Name"/>
                        <label>*{this.state.name}*</label>
                    </div>
                    <div>
                        <input type="text" ref="email" onChange={this.update} placeholder="Email"/>
                        <label>*{this.state.email}*</label>
                    </div>
                </form>
            );
        }

    });

    React.render(<App />, document.getElementById('panel'));
</script>
</body>
</html>
复制代码

 

 

Use addon: ReactLink

1. include the script:

script src="https://fb.me/react-with-addons-0.13.3.js"></script>

2. Add mixin:

mixins: [React.addons.LinkedStateMixin],

3. Use valueLink={this.linkState('name')} instead of 'ref' and 'onChange':

<input valueLink={this.linkState('name')} type="text" placeholder="Name" />

 

Code:

复制代码
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>React Lesson 15: dynamically create componenets</title>
    <script src="https://fb.me/react-with-addons-0.13.3.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/JSXTransformer.js"></script>
    <style>
        body {
            margin: 25px;
        }
    </style>
</head>
<body>
<div id="panel"></div>
<script type="text/jsx">
    /** @jsx React.DOM */

    var App = React.createClass({
        mixins: [React.addons.LinkedStateMixin],
        getInitialState:function(){
            return {
                name: '',
                email: ''
            }
        },
        render:function(){
            return (
                <form>
                    <div>
                        <input valueLink={this.linkState('name')} type="text" placeholder="Name" />
                        <label>*{this.state.name}*</label>
                    </div>
                    <div>
                        <input valueLink={this.linkState('email')} type="text" placeholder="Email" />
                        <label>*{this.state.email}*</label>
                    </div>
                </form>
            );
        }

    });

    React.render(<App />, document.getElementById('panel'));
</script>
</body>
</html>
复制代码

 

posted @   Zhentiw  阅读(360)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示