react学习(五)Components

参考:https://facebook.github.io/react/docs/components-and-props.html

一些独立,可重用的界面可以使用Components封装。

(一)Components定义

可以使用函数或者ES6的class定义Components,后者有一些额外的特性,前者比较简洁。

两者返回的代码必须只有一个根元素:

1.函数,代码示例:

import React from ‘react‘;

function DemoA(props) {//接受外面传入的props
    return <div>DemoA</div>
}

export default DemoA;

2.ES6的class

(1)class参考:http://es6.ruanyifeng.com/#docs/class,总结如下:

  • 使用class关键字定义
  • 类里面的使用constructor定义构造方法
  • 这样的类中函数定义不需要使用function关键字
  • 类继承使用关键字extends

(2)代码示例:

import React from ‘react‘;

class DemoB extends React.Component{//继承React.Component,在render方法中返回
    render(){
        return <div>DemoB</div>
    }
}

export default DemoB;

(二)渲染Components

//1.引入组件//index.jsimport React from ‘react‘;
import ReactDOM from ‘react-dom‘;
import DemoB from "./components/ClassComponent";//1.引入component

let b = <DemoB></DemoB>//跟使用div标签等一样使用,记得使用驼峰写法
ReactDOM.render(b, document.getElementById(‘root‘));
//2.组件中使用组件
//DemoAB.js

import React from ‘react‘;
import ClassComponent from "./ClassComponent";
import FunctionComponent from "./FunctionComponent";

function DemoAB(props) {
    return <div>//只能返回一个根元素
        <ClassComponent></ClassComponent>
        <FunctionComponent></FunctionComponent>
    </div>
}

export default DemoAB;

(三)传值

//DemoAB.js
//组件中使用组件
import React from ‘react‘;
import ClassComponent from "./ClassComponent";
import FunctionComponent from "./FunctionComponent";

function DemoAB(props) {
    return <div>
        //1.传值
        <ClassComponent Hello="hoho Class"></ClassComponent>
        <FunctionComponent Hi="yoyo Function"></FunctionComponent>
    </div>
}

export default DemoAB;
//FunctionComponent.js
import React from ‘react‘;

function DemoA(props) {
    //2.props.Hi = ‘haha‘;不能这样子做,props的值是只读的,改变会报错
    //3.function方式,使用props
    return <div>DemoA,{props.Hi}</div>
}

export default DemoA;
//ClassComponent.js
import React from ‘react‘;

class DemoB extends React.Component{
    render(){
        //4.class方式,通过this获取props
        return <div>DemoB,{this.props.Hello}</div>
    }
}

export default DemoB;
时间: 2024-07-30 18:06:27

react学习(五)Components的相关文章

React 学习路线

以下所谈及的,就是为你定制的 React 学习路线. 为了能稳固基础,我们一定要逐步地来进行学习. 倘若你正在建造一间房子,那么为了能快点完成,你是否会跳过建造过程中的部分步骤?如在具体建设前先铺设好部分石头?或直接在一块裸露的土地上先建立起墙面? 又假如你是在堆砌一个结婚蛋糕:能因为上半部分装饰起来更有趣,而直接忽略了下半部分? 不行吗? 当然不行.众所周知,这些做法只会导致失败. 因此,不要想着通过接触 React 来将 ES6 + Webpack + Babel + React + Rou

Facebook React 和 Web Components(Polymer)对比优势和劣势

目录结构 译者前言 Native vs. Compiled 原生语言对决预编译语言 Internal vs. External DSLs 内部与外部 DSLs 的对决 Types of DSLs - explanation DSLs 的种类 - 解释 Data binding 数据绑定 Native vs. VM 原生对决 VM(虚拟机) 译者前言 这是一篇来自 StackOverflow 的问答,提问的人认为 React 相比 WebComponents 有一些"先天不足"之处,列举

【转】Facebook React 和 Web Components(Polymer)对比优势和劣势

原文转自:http://segmentfault.com/blog/nightire/1190000000753400 译者前言 这是一篇来自 StackOverflow 的问答,提问的人认为 React 相比 WebComponents有一些“先天不足”之处,列举如下: 原生浏览器支持 原生语法支持(意即不把样式和结构混杂在 JS 中) 使用 Shadow DOM 封装样式 数据的双向绑定 这些都是确然的.不过他还是希望听听大家的看法,于是就有了这篇精彩的回答. 需要说明的是,这篇回答并没有讨

React学习系列

React学习系列 系列学习react 翻译地址 https://scotch.io/tutorials/learning-react-getting-started-and-concepts 我是初学者,英语也不是很好,不过一直强迫自己看英文文档. 这是理解翻译,翻译的不好,请见谅!()中的是我翻译过程中理解,参考下,有什么说的不对的欢迎指点下! 第一节:如何开始react和了解react的概念 1.React是什么 react是Facebook 开发出来用于促进UI交互,创建带有状态的,可复

Beaglebone Back学习五(PWM测试)

PWM测试 参考链接 1 Enable PWM on BeagleBone with Device Tree overlays 2Using PWM on the Beaglebone Black 3 Beaglebone Coding 101: Buttons and PWM 4 Using PWM outputs 5 beaglebone-black-cpp-PWM 6 Enabling PWM Support in the kernel 7 Beaglebone Back学习五(PWM测试

TweenMax动画库学习(五)

目录            TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)            TweenMax动画库学习(四)            TweenMax动画库学习(五)  

NodeJS学习五 之网页显示

我们新建一个Server.js. 然后运行cmd 找到server.js 路径.  node server.js 浏览器中输入http://localhost:8888/ 你会发现,网页上出现了 Hello World NodeJS学习五 之网页显示,布布扣,bubuko.com

Cmdlet开发与学习(五)

Parameter       在声明cmdlet参数的时候,我们使用了Parameter标识符,在这个标识符中,有些参数需要了解到. 强制参数 设置Mandatory=true即可. 对于强制参数,不管是在命令行中绑定,还是通过管道输入,在命令逻辑执行之前,它就必须绑定好.如果强制参数没有参数值的话,PowerShell会弹出对话框,要求用户提供参数值. 位置参数.       Position= n       有时,我们在使用Powershell的时候,发现仅仅是输入参数值,并没有指定具体

Objective C 快速入门学习五

<一>继承和多态 @class Complex 声明类(同C++) 子类函数成员 super 访问父类 同C++类似 1.通过继承 在子类中添加新方法 2.通过继承 在子类中添加新成员 3.通过继承 实现多态(实现比较简单,通过Id通用类型作为父类) 4.重载 5.抽象类abstract作用:创建子类更容易:提供了处理所有派生子类的公共接口:抽象方法制定了标准协议,规范子类必须实现. 6.通用类型id,编译时不会做类型检查,在运行时才会动态绑定具体类型,指出错误. 静态类型在编译阶段就会指出错