非DOM属性:1.dangerouslysetInnerHTML(xxs跨站攻击)

2.key

3.ref

编写组件嵌套

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
    <script src="../build/react.js"></script>
    <script src="../build/react-dom.js"></script>
    <script src="../build/browser.min.js"></script>
  </head>
  <body>
    <div id="example"></div>
    <script type="text/babel">
      <!-- 定义子组件 -->
    var GenderSelect= React.createClass({
        render:function(){
            return (
               <!-- 父组件通过属性与子组件通信 -->
              <select onChange={this.props.handleSelect}>
                <option value="0">男</option>
                <option value="1">女</option>
              </select>
            )
        }
    });
    var SignupForm=React.createClass({

        getInitialState:function(){
              return {
                  name:'',
                  password:'',
                  gender:''
              }
        },
        <!-- 子组件事件委托 -->
         handleSelect:function(event){
             this.setState({
                gender:event.target.value
             })
        },
          handChange:function(key,event){
             var newState={}
             newState[key]=event.target.value
             this.setState(newState)
        },

        render: function(){
          console.log(this.state)
          return (

         <form>
          
            <input type="text" placeholder="说的什么吧" onChange={this.handChange.bind(this,'name')} />
                
            <input type="password" onChange={this.handChange.bind(this,'password')} />
                  
            <GenderSelect handleSelect={this.handleSelect}></GenderSelect>
            
          </form>
          )        
        
        }
    });

      ReactDOM.render(
       <SignupForm></SignupForm>,
       document.getElementById('example')
      );
     
    </script>
  </body>
</html>

编写简单的Mixin函数

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
    <script src="../build/react.js"></script>
    <script src="../build/react-dom.js"></script>
    <script src="../build/browser.min.js"></script>
  </head>
  <body>
    <div id="example"></div>
    <script type="text/babel">
   <!--  Mixin=一组方法:1.横向抽离
                         2.面向切面编程,插件 -->
    var BindingMixin = {
     <!-- 多个函数作用相似的组件 参数key -->
       changContent:function(key){
             <!-- 作用域 -->
             var _self=this
             <!-- 函数闭包 -->
             var newState={}
             return function(event){
                newState[key]=event.target.value
                _self.setState(newState)

             }
        }
    }
    var HelloMessage=React.createClass({
        <!-- 引用Mixin函数 -->
        mixins:[BindingMixin],
        getInitialState:function(){
              return {
                contentText:'',
                password:''
              }
        },
        render: function(){
          return (
         <form>
            
              <input type="text" placeholder="说点什么吧" onChange={this.changContent('contentText')} />
              <p>{this.state.contentText}</p>

              <textarea onChange={this.changContent('password')} ></textarea>
              <p>{this.state.password}</p>
          </form>
          )     
        
        }
    });
      <!-- 用于将模板转为HTML语言并插入指定的DOM节点 -->
      ReactDOM.render(
       <HelloMessage />,
       document.getElementById('example')
      );
     
    </script>
  </body>
</html>

组件嵌套+Mixin函数demo的更多相关文章

  1. Vue.js之组件嵌套小demo

    Vue.js之组件嵌套的小demo项目 第一步:初始化一个wabpack项目,这里不在复述.第二步:在components文件夹下新建Header.vue Footer.vue和Users.vue三个 ...

  2. 5. React 组件的协同使用 组件嵌套和Mixin

            组件是React的核心,构建大型项目时多个组件之间需要进行协同使用.可以从横向和纵向两个角度来实现组件的协同使用,纵向的协同使用就是组件嵌套,横向的协同使用就是Mixin(抽取公共方法 ...

  3. vue 基础-->进阶 教程(3):组件嵌套、组件之间的通信、路由机制

    前面的nodejs教程并没有停止更新,因为node项目需要用vue来实现界面部分,所以先插入一个vue教程,以免不会的同学不能很好的完成项目. 本教程,将从零开始,教给大家vue的基础.高级操作.组件 ...

  4. 微信开源组件WCDB漫谈及Demo

    代码地址如下:http://www.demodashi.com/demo/12422.html 前言 移动端的数据库选型一直是一个难题,直到前段时间看到了WeMobileDev(微信前端团队)放出了第 ...

  5. React 三大属性state,props,refs以及组件嵌套的应用

    React 三大属性state,props,refs以及组件嵌套的应用 该项目实现了一个简单的表单输入添加列表的内容 代码如下 <!DOCTYPE html> <html> & ...

  6. [前端随笔][Vue] 多级菜单实现思路——组件嵌套

    说在前面 本篇记录学习了vue-element-admin中的多级菜单的实现 [传送门] @vue/cli 4.2.2:vuex:scss:组件嵌套 正文 创建项目 npm create 项目名 // ...

  7. 【React】学习笔记(一)——React入门、面向组件编程、函数柯里化

    课程原视频:https://www.bilibili.com/video/BV1wy4y1D7JT?p=2&spm_id_from=pageDriver 目录 一.React 概述 1.1.R ...

  8. Vue.js多重组件嵌套

    Vue.js多重组件嵌套 Vue.js中提供了非常棒的组件化思想,组件提高了代码的复用性.今天我们来实现一个形如 <app> <app-header></app-head ...

  9. React入门---组件嵌套-5

    组件嵌套 我们现在需要组件嵌套,所以要创建其他组件,目前有一个头部组件,在./components/header.js; 接下来在components文件中创建:底部组件footer.js 和主体组件 ...

随机推荐

  1. Django Nginx+uwsgi 安装配置

    使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, lighttp ...

  2. js 函数总结

    函数的基本语法如下所示: function functionName(arg0, arg1,...,argN) { statements } 函数如果有返回值则return 后的语句将不会被执行,返回 ...

  3. Java反射遍历数组

    日志中有时候需要查看数组中的值,但是重载很多的打印函数,觉得很别扭.所以想通过反射,获取数组中的值,打印出来.Java提供了数组反射操作的类,之前没有关注过,提供的方法简单易用. public sta ...

  4. Qt::QObject类

    QObject 类是Qt 所有类的基类. QObject是Qt对象模型的核心.这个模型的中心要素就是一种强大的叫做信号与槽无缝对象沟通机制.你可以用 connect()函数来把一个信号连接到槽,也可以 ...

  5. Shellcode编程小技巧

    工作需要,需要注入其他程序监控一些东西,检测到的数据通过WM_COPY 消息发送给显示窗体.(大体是这样的还没定稿) ##1 选择一个框架 ## tombkeeper/Shellcode_Templa ...

  6. Xcode Build Settings Architectures

    http://foggry.com/blog/2014/05/09/xcodeshe-zhi-xiang-zhi-architectureshe-valid-architectures/ https: ...

  7. angular_ui-router ——依赖注入

    Angularjs ui-router - 组件: $state / $stateProvider:管理状态定义.当前状态和状态转换.包含触发状态转换的事件和回调函数,异步解决目标状态的任何依赖项,更 ...

  8. ubuntu常见问题及解决

    1.反复关机后自动重启. 联网状态下输入以下命令. sudo apt-get install laptop-mode-tools 2.win和ubuntu双系统下,怎么修改启动顺序和等待时间? 1.开 ...

  9. 一个ubuntu phper的自我修养(atom)

    将atom打造成二十一世纪最装那啥的php IDE 之前在windows平台使用的php IDE一直是eclipse for php,因为之前做java开发,所以对eclipse很有感情,debug. ...

  10. 浮动div中的图片垂直居中

    table-cell方法垂直水平居中 <!DOCTYPE html> <html> <head> <meta name="description&q ...