非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. openGL漫游功能简单实现

    最近弄openGL漫游功能的时候,在网上找了好多源码都没有达到预期效果,然后就自己写了一个算法分享一下. 上下键实现位移,左右键实现转动. 算法思想:由于改变观察点函数原型为: void gluLoo ...

  2. u-boot移植 II

    下面是韦老师的uboot移植攻略: A. 开发板的相关拷贝与修改 1. 在board文件夹下面, 将原来的smdk2410复制为100ask24x0目录, 并将smdk2410.c改名为100ask2 ...

  3. iOS开发零碎知识点

    记录一些常用和不常用的iOS知识点,防止遗忘丢失.(来源为收集自己项目中用到的或者整理看到博客中的知识点),如有错误,欢迎大家批评指正:如有好的知识点,也欢迎大家联系我,添加上去.谢谢! 一.调用代码 ...

  4. CSS3自定义滚动条样式 -webkit-scrollbar

    今天写项目碰上需要改滚动条效果,我的第一反应是,需要用js写滚动条,顿时头大,上网搜了一下,原来css3就可以修改滚动条样式了,非常好啊,下面分享原文地址:http://www.xuanfengge. ...

  5. Handler 、 Looper 、Message

    分析: Looper:prepare和loop public static final void prepare() { if (sThreadLocal.get() != null) { throw ...

  6. git学习——git理解和仓库的创建

    一.git用的3个工作的状态的理解. 1. 工作区 workspace(modified); 2. 暂存区 stage(staged) ; 3. git本地仓库 repository(commited ...

  7. android dialog

    /** * @Title MenuTest.java * @package com.example.standardview * @since * @version 1.0.0 * @author V ...

  8. js跨域访问,No 'Access-Control-Allow-Origin' header is present on the requested resource

    js跨域访问提示错误:XMLHttpRequest cannot load http://...... No 'Access-Control-Allow-Origin' header is prese ...

  9. C 语言

    1, //         char server[] = BaseNetServerIp; //        string  serverStr = _aliNetServerEnabled?Ne ...

  10. 学习git与github的二三bug

    前期概要:git也装好啦,github的账号也注册好啦,ssh key也加了,第一次 git push -u origin master也没问题了 然而 第二次push的时候,提示 Error: Pe ...