非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. .NET 动态脚本语言Script.NET 入门指南 Quick Start

    Script.NET是一种动态的脚本语言,它使得程序可扩展,可定制,和维护性好.和Office系列的VB Script相似,可以在应用中嵌入大量的代码块,以便在运行时才执行这些代码. Script.N ...

  2. C#的HTTP协议中POST与GET的区别

    引言 HTTP协议我想任何IT人士都耳熟能详了,大家都能说出个所以然来.但是如果我问你HTTP协议的请求方法有哪些?POST与GET的差异?GET或POST传送数据量的大小有限制吗?HTTP响应的状态 ...

  3. swif解决手势冲突

    有时候我们在一个大的透明view上添加一个小的view,需要点击透明view时remove掉,但是我们不希望触碰到小的view上也remove就需要实现 UIGestureRecognizerDele ...

  4. php webservice

    发请求客户端client.php <?php //需要到php.ini文件中打开extension=php_soap.dll try{ //wsdl方式调用web service //wsdl方 ...

  5. 扩展GridView实现的一个自定义无刷新分页,排序,支持多种数据源的控件TwfGridView

    最近项目View层越来越趋向于无刷新化,特别是数据展示方面,还要对Linq有很好的支持.在WebFrom模式的开发中,GridView是一个功能很强大,很常用的控件,但是他也不是完美的,没有自带的无刷 ...

  6. C语言中关于POW在不同状态下四舍五入的解决方法

    这是今天作业中的一个代码: #include <stdio.h>#include<math.h>int main(){ printf("请输入一个整数:") ...

  7. 8. apache服务实验笔记

    Apache服务器 一 简介 1 www:world  wide  web 万维网 http 协议: 超文本传输协议 HTML语言: 超文本标识语言 2 URL:统一资源定位 协议+域名:端口+网页文 ...

  8. winfrom 文字滚动

    winfrom 文字滚动 http://www.codeproject.com/Articles/6913/Creating-a-professional-looking-GDI-drawn-cust ...

  9. [Machine-Learning] 熟悉Matlab

    浮点数取整的几个函数 floor: 向下取整 ceil: 向上取整 round: 取最接近的整数 fix: 向0取整 不等于 Matlab 中,使用~=表示不等于. 数组相关操作 使用 [] 命名数组 ...

  10. mac攻略(七) -- 环境变量PATH分析

      一.首先需要了解 1>mac 一般使用bash作为默认shell 2>Mac系统的环境变量,加载顺序为: 1.系统级别的 /etc/profile /etc/bashrc /etc/p ...