中秋过后刚好结束在上一家公司的工作,明天开始要正式的找工作了,最近也投了几家公司收到几分面试邀请。在面试的过程中几个面试官聊到了react(当然也有聊了vue,angular)。感觉不懂react都不好意思找前端的工作了,其实我本人对react还是很有好感的无论是jsx还是对es6友好的支持都很吸引我所以平时也找些例子学习自己写几个小demo,但由于上家公司的项目中使用的是avalon2(后转vue)一直忙于项目的事半年没接触对所以对觉得react很陌生了。待业之际乘此机会重(学)react。

props


react 组件化开发的思路(Component)一直被人称赞。其中父组件和子组件的通信就是通过props来传递的我看看props的几种用法:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
    <div id="app" ></div>
    <script src="./dist/js/bundle.js" ></script>
</body>
</html>

js文件

import React,{Component} from 'react';
import {render} from 'react-dom';
class MyComponent extends Component{

    render(){
      return(
        <div>
          <h1>{ this.props.name }</h1>
        </div>
      )

    }
}

render(<MyComponent name="json" />,
  document.querySelector("#app")
); //可以这样传递普通的传递方式

解构传递

import React,{Component} from 'react';
import {render} from 'react-dom';
const props = { //定义一个对象
  name:'cqs',
  age:'25'
}

class MyComponent extends Component{

    render(){
      return(
        <div>
          <h1>{ this.props.name }</h1>
          <h1>{ this.props.age }</h1>
        </div>
      )

    }
}

render(<MyComponent {...props} />, //对象解构传递
  document.querySelector("#app")
);//还可以解构传递

props 不止可以传递对象还是传递方法

import React,{Component} from 'react';
import {render} from 'react-dom';

class SupComponent extends Component{
  constructor(){
      super();
      this.state = {
        number:0
      }
  }
  handleAdd(){
    this.setState({  number:++this.state.number}); //把方法放在父组件(控制器Controller)通过props传递给子组件,子组件触发调用父组件的state发生改变UI(View视图跟着变)
  }
    render(){

      return(
          <div>
              <SubComponent  handleAdd={ this.handleAdd.bind(this) }  />
              <p> { this.state.number } </p>
          </div>
      )
    }
}

class SubComponent extends Component{

    render(){
        return(
            <div>
              <button onClick={ this.props.handleAdd } >普通按钮</button>
            </div>
        )
    }
}

 render( <SupComponent/>,document.querySelector("#app") );

react学习之props的更多相关文章

  1. React 学习(二) ---- props验证与默认属性

    在上一节中, 我们提到了props, 组件之间数据的传递使用props. 我们调用组件时可以设置props, 组件内部通过props获取. 为了props 使用更加友好, React 提供了简单的验证 ...

  2. React学习笔记 - 组件&Props

    React Learn Note 4 React学习笔记(四) 标签(空格分隔): React JavaScript 三.组件&Props 组件可以将UI切分成一些独立的.可复用的部件,这样你 ...

  3. react学习小结(生命周期- 实例化时期 - 存在期- 销毁时期)

    react学习小结   本文是我学习react的阶段性小结,如果看官你是react资深玩家,那么还请就此打住移步他处,如果你想给一些建议和指导,那么还请轻拍~ 目前团队内对react的使用非常普遍,之 ...

  4. React学习笔记(一) 基础知识

    现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我. React的基 ...

  5. React学习系列

    React学习系列 系列学习react 翻译地址 https://scotch.io/tutorials/learning-react-getting-started-and-concepts 我是初 ...

  6. react学习笔记1--基础知识

    什么是react A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACES[React是一个用于构建用户界面的JavaScript库.] React之所以快, ...

  7. react 学习与使用记录

    相关技术:webpack+react+react-router+redux+immutable 郭永峰react学习指南 1.git bash--windows命令行工具 --教程 下载地址 2. i ...

  8. React学习笔记-03 state

    每一个组件都有状态,比如一个开关,开 和 关,都是一种state.那么react是怎么管理它的state的? React 把用户界面当做状态机,可以轻松的让用户界面和数据保持一致.用户只需要更新组件的 ...

  9. 【react学习】关于react框架使用的一些细节要点的思考

    ( _(:3 」∠)_给园友们提个建议,无论是API文档还是书籍,一定要多看几遍!特别是隔一段时间后,会有意想不到的收获的)   这篇文章主要是写关于学习react中的一些自己的思考:   1.set ...

随机推荐

  1. ios 调用相机后 view 下沉问题

    我只加了一句代码 现在不报错了  因为这个问题是随机性的  我也不太明白这个地方是怎么回事   我只是这样子做了  问题不出来了 if ([[[UIDevice currentDevice] syst ...

  2. Qt Creator下载

    Qt官网 http://qt.digia.com qt的历史版本可以到http://download.qt-project.org/archive/qt/下载

  3. Android 周报

    1. https://androidsweets.ongoodbits.com/ 2. https://www.androiddevdigest.com/ 3.http://us12.campaign ...

  4. JS控制文本框中的密码显示/隐藏功能

    <html> <head> <title>[荐]JS控制文本框中的密码显示/隐藏功能_网页代码站(www.6a8a.com)</title> <s ...

  5. spring3+hibernate3+(dbcp+oracle+拦截器事务配置)整合(一)

    1.applicationContext-base.xml文件 <?xml version="1.0" encoding="UTF-8"?>< ...

  6. WAMPSERVER2.2 无法启动的解决!

    转: PHP版本:5.3.10 XDEBG插件:php_xdebug-2.1.2-5.3-vc9.dll WAMPServer2.2用的是VC9编译的,并且需要VC9运行库支持. 此问题解决方法: 下 ...

  7. PAT 大数运算

    PAT中关于大数的有B1017,A1023,A1024 (A-Advance,B-Basic) B1017 1017. A除以B (20) 本题要求计算A/B,其中A是不超过1000位的正整数,B是1 ...

  8. BZOJ 2878 迷失游乐园

    http://www.lydsy.com/JudgeOnline/problem.php?id=2878 题意:n个点的图,保证图联通,有n-1或者n条边,求从任意一个点出发,不经过相同点,最终无路可 ...

  9. 【关于微软的上一代模板引擎 T4引擎】

    导语:国内有名的动软代码生成器用的就是T4引擎......可以自己下载下来用用,批量生成固定模式的代码文件,十分有用........... 示例代码:示例代码__你必须懂的T4模板:浅入深出.rar ...

  10. httrack,webdup,WinHTTrack,WebZip

    怎么下载摄像头游戏jabbo,并使其能离线运行?修改 1.摄像头游戏jabbo:JABBO Ultimatum by LiveMurals Interactive电脑为:windows 7 32位.试 ...