React-Component(组件)
来源:互联网 发布:淘宝退款空包 编辑:程序博客网 时间:2024/05/16 15:34
概述:前面说了元素,元素组合起来就是组件,如果学过EasyUI你会发现有很多已经定义好的组件例如手风琴,树形表格等等,组件的目的是为复用。
组件的表现形式有两种一种是函数(JS一直都有的),一种是ES6 class (类似java类)
1.函数式的组件---没有变量
function getName(){ return <h1>往前的娘娘</h1>}
ReactDOM.render( getName(), document.getElementById("root"));总结:只要是html标签的元素就能被渲染,无论调用函数还是常量定义
2.ES6 class的组件--没有变量
class Name extends React.Component { render(){ return <div> <h5>成功总是那么不容易</h5> <h5>容易的成功有什么意义</h5> <h5>追求自己心中的想法前行</h5> </div> }}
//类似html标签const element = <Name/>
总结:1.写法上类似java方式,前一段是类模板的定义,Component是React的内部类(注意类 首字母大写,在定义上可以小写不会报错,最后你会发现用不了--看第三条)
2.render()相当于它构造函数,只是这个构造函数大家通用一个名称 render(里面返回值是html标签)
3.类定义好,开始实例化<Name/> 注意看这个格式类似html标签,但有些不同,首字母大写,这就是React实例化类一种规则,这也回答第一条中的问题
如果小写,它会认为是html标签而不是React正在实例化类,也就是用不了。
4.最后多说一句:与java对比是不是都是一样套路,创建模板,实例化(这是只是实例化html标签)
3.函数式的组件---有变量
function GetName(props){ return <h1>{props.name}</h1>}
const element = <GetName name="往前的娘娘"/>
ReactDOM.render( element, document.getElementById("root"));
总结:1.你看能会发现函数定义第一个字母大写了,为了实例化加工一下,注意函数要返回html标签,(因为它只加工html标签)
2. <GetName name="往前的娘娘"/> name就是标签的属性,在实例化过程会传个调用函数的这个总标签对象,它可以获取属性name
3. 函数的变量不一定是props(一般都这么写)最后只要引用和函数调用必须用{}括起来
4.ES6 class的组件--没有变量
class Name extends React.Component { render(){ return <div> <h5>{this.props.first}</h5> <h5>{this.props.second}</h5> <h5>{this.props.third}</h5> </div> }}
const element = <Name first="成功总是那么不容易" second ="容易的成功有什么意义" third="追求自己心中的想法前行"/>ReactDOM.render( element, document.getElementById("root"));
总结:1.你会发现Name并没有接受我传入标签对象,其实它在内部已经传递了,this就是类本对象(像不像java)
2. 你要注意的是这时候props不能其它名称,因为别人就没有给你定义接受变量名称,你就入乡随俗,除非你不想用
谢谢大家的浏览
阅读全文
1 0
- React Native--组件Component
- React组件Component
- React-Component(组件)
- React 认知 三 组件Component
- React Native——Component(组件)
- 在React中使用extends React.Component定义的组件
- React中文教程 - Component Basics(组件基础)
- React中文教程 - Component Lifecycle(组件的生命周期)
- React Component组件的详细说明和生命周期
- react 入门-创建组件(1)继承component法
- react---react组件创建,通过React.createClass方法与class App extends Component方法的区别
- react---react组件创建,通过React.createClass方法与class App extends Component方法的区别
- 【React】React.Component小结
- 组件 - Component
- React学习笔记_无状态组件(Stateless Component) 与高阶组件
- react js component
- React - Component Compositon (2)
- React Component生命周期
- Zookeeper + ActiveMQ 集群
- 【AtCoder Grand 015C】Nuske vs Phantom Thnook 题解
- 聊聊 Xcode 编译 ToolChain
- python中解析和生成pdf文件
- swing分组框
- React-Component(组件)
- 在树莓派上搭建LAMP服务
- 笔试编程经典(leetcode在线编程)
- android studio——替换全局的某个字符串
- 关于Objective C运行时(runtime)技术的几个要点总结
- java使用HttpClient模拟发送http的get、post请求
- Python的urllib3软件包详解
- [转] MySQL死锁问题分析及解决方法实例详解
- XML文件结构和基本语法