中秋过后刚好结束在上一家公司的工作,明天开始要正式的找工作了,最近也投了几家公司收到几分面试邀请。在面试的过程中几个面试官聊到了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. Content-Disposition的使用和注意事项(转载)

    Content-Disposition的使用和注意事项 最近不少Web技术圈内的朋友在讨论协议方面的事情,有的说web开发者应该熟悉web相 关的协议,有的则说不用很了解.个人认为这要分层次来看待这个 ...

  2. oracle11gr2 netca 无法启动 报错

    安装oracle软件后,必须要先配置listener才能dbca建库,但是netca却报下面的错误. Oracle Net Services Configuration: # # An unexpec ...

  3. CSS 设计彻底研究(五)文字与图像

    第五章 文字与图像 5.1.2 设置字体 通过font-family属性设置字体.可以声明多种字体,字体之间用逗号分隔开.如一些字体名称中间有空格,需用双引号将其引起来,使浏览器知道这是一种字体的名称 ...

  4. poj2243 bfs

    O - 上一个题的加强版 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:65536KB     6 ...

  5. android设置图片变化的四种效果代码

    activity代码如下: package com.example.chapter12_graphic_animation; import android.os.Bundle; import andr ...

  6. jQuery常用选择器汇总

    一.基本选择器 <body> <div> <div id="div1"> aaaaaaaaaaa</div> <div cla ...

  7. py正则表达式

    1.元字符 . ^ $ * + ? {} [] \ | () --> [] :   - 常用来指定一个字符集:[abc], [a-z]  匹配任意一个字符 - 元字符在字符集中不起作用:[akm ...

  8. 用Python设计第一个游戏 - 零基础入门学习Python002

    用Python设计第一个游戏 让编程改变世界 Change the world by program 有些鱼油可能会说,哇,小甲鱼你开玩笑呐!这这这这就上游戏啦?你不打算给我们讲讲变量,分支,循环,条 ...

  9. 利用raspberry pi搭建typecho笔记(三) typecho nginx sqlite FAQ

    前言 这是一个汇总文,用来总结我在整个配置过程中遇到的各种问题.因为我在解决这些问题的过程中发现,typecho被部署在这种需要完全自己配置的平台上的情况是比较少的,相关的资料也比较少,所以我的解决过 ...

  10. 在 .NET Framework 2.0上使用LINQ

    附件:System.Linq.dll.7z 此为从System.Core.dll中剥离的Linq,含有System.Linq.Enumerable类所有扩展方法,可以在客户只安装了.Net 2.0的环 ...