0

0

React基础语法有哪些?react的基础语法的介绍(附实例)

寻∝梦

寻∝梦

发布时间:2018-09-11 14:32:03

|

2126人浏览过

|

来源于php中文网

原创

本篇文章主要的介绍了关于react的基础语法介绍,还有关于state和props初始化方式的详解,接下来就让我们一起来看这篇文章吧

React基础语法

1.什么是React  2.React组件  3 State和Props  4 React组件生命周期

1、React

React 是一个用于构建用户界面的 JAVASCRIPT 库。
 React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。
 React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。
 React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。

react使用jsx来代替常规的javascript。jsx是一个看起来很像xml的javascript语法扩展。
注意

  • JSX 中HTML标签用小写字母,React组件大写字母开头

  • 属性使用小驼峰命名,第一个单词首字母小写其他大写字母开头

  • 注意HTML标签的属性onclick和onchange等,在JSX中,必须写出onClick,写出小驼峰命名才有效。

  • 为了支持JSX,需要在WebStrom中设置javascript为JSX Harmony

React 特性:
 1.声明式设计 −React采用声明范式,可以轻松描述应用。
 2.高效 −React通过对DOM的模拟,最大限度地减少与DOM的交互。
 3.灵活 −React可以与已知的库或框架很好地配合。
 4.JSX − JSX 是 JavaScript 语法的扩展。React 开发不一定使用   JSX ,但我们建议使用它。
 5.组件 − 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。
 6.单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。

2、React组件两种实现方式与不同之处

因为React是一个用于构建用户界面的 JAVASCRIPT 库,所以首先引用三个js文件  ,也可以下载下来再本地引用。






    
    Title
    
    
    
    


 react.min.js - React 的核心库
react-dom.min.js - 提供与 DOM 相关的功能
babel.min.js - Babel 可以将 ES6 代码转为 ES5 代码,这样我们就能在目前不支持 ES6 浏览器上执
 行 React 代码。Babel 内嵌了对 JSX 的支持。通过将 Babel 和 babel-sublime 包(package)
一同使用可以让源码的语法渲染上升到一个全新的水平。

2.1 方式一:

class MyTextView extends React.Component{
    render(){
        return 

hello react

; } } //组件渲染到DOM中 ReactDOM.render(,document.body);
  • 必须继承React.Componet

  • render()渲染函数是必须的

  • >必选的方法,创建虚拟DOM,该方法具有特殊的规则:
    1、只能通过this.props和this.state访问数据
    2、可以返回null、false或任何React组件
    3、不能改变组件的状态
    4、不能修改DOM的输出

2.2方式二:

var MyTexTiew2  = React.createClass(
    {
        render:function () {
            return  

hi react

; } } ); ReactDOM.render(,document.body);
  • 使用createClass方法,传入对象,结构赋值render等方法和属性

  • 使用这个方式才会执行组件的声明周期函数,才可以访问组件的state和props属性。

State和Props

State主要用于更新界面,组件的State属性在生命周期函数 getInitialState中初始化,当调用组件的this.setState改变state的时候,组件会重新渲染刷新。
 Props主要用于组件之间传递数据,也就是标签的属性 这里的pname属性就可以在MyText中通过this.props.pname得到

var MyTextView = React.createClass(
    {
     render:function(){
         return 

content:{this.props.contentText}

; } } ); var MyViewGroup = React.createClass({ getInitialState:function () { //生命周期函数,返回一个对象 return {text:""}; }, handleChange:function (e) { //改变组件的state属性 this.setState({text:e.target.value}); }, render:function () { return

//注意属性onChange大写

; } }); ReactDOM.render(,document.getElementById("content"));

React组件生命周期

实例化

Napkin AI
Napkin AI

Napkin AI 可以将您的文本转换为图表、流程图、信息图、思维导图视觉效果,以便快速有效地分享您的想法。

下载

首次实例化
   getDefaultProps
   getInitialState
   componentWillMount
   render
   componentDidMount

实例化完成后的更新
   getInitialState
   componentWillMount
   render
   componentDidMount

存在期
组件已存在时的状态改变
   componentWillReceiveProps
   shouldComponentUpdate
   componentWillUpdate
   render
   componentDidUpdate

销毁&清理期
   componentWillUnmount

生命周期共提供了10个不同的API。

1.getDefaultProps
作用于组件类,只调用一次,返回对象用于设置默认的props,对于引用值,会在实例中共享。

2.getInitialState
作用于组件的实例,在实例创建时调用一次,用于初始化每个实例的state,此时可以访问this.props。

3.componentWillMount
在完成首次渲染之前调用,此时仍可以修改组件的state。(想看更多就到PHP中文网React参考手册栏目中学习)

4.render
必选的方法,创建虚拟DOM,该方法具有特殊的规则:
   只能通过this.props和this.state访问数据
   可以返回null、false或任何React组件
   只能出现一个顶级组件(不能返回数组)
   不能改变组件的状态
   不能修改DOM的输出

5.componentDidMount
真实的DOM被渲染出来后调用,在该方法中可通过this.getDOMNode()访问到真实的DOM元素。此时已可以使用其他类库来操作这个DOM。
在服务端中,该方法不会被调用。

6.componentWillReceiveProps
组件接收到新的props时调用,并将其作为参数nextProps使用,此时可以更改组件props及state。

componentWillReceiveProps: function(nextProps) { 
        if (nextProps.bool) { 
            this.setState({ 
                bool: true 
            }); 
        } 
    }

7.shouldComponentUpdate
组件是否应当渲染新的props或state,返回false表示跳过后续的生命周期方法,通常不需要使用以避免出现bug。在出现应用的瓶颈时,可通过该方法进行适当的优化。
在首次渲染期间或者调用了forceUpdate方法后,该方法不会被调用

8.componentWillUpdate
接收到新的props或者state后,进行渲染之前调用,此时不允许更新props或state。

9.componentDidUpdate
完成渲染新的props或者state后调用,此时可以访问到新的DOM元素。

10.componentWillUnmount
组件被移除之前被调用,可以用于做一些清理工作,在componentDidMount方法中添加的所有任务都需要在该方法中撤销,比如创建的定时器或添加的事件监听器。

通过集成extends React.Component  给组件初始化不会执行getDefaultProps、getInitialState
只有通过以下方式给组件初始化state和props

1、state的初始化,通过构造函数

  //在构造函数中对状态赋初始值
    constructor(props){
        super(props);//第一步,这是必须的
        //不能调用state
        this.state = {//第二步,赋初始值
            time:0,
            on:false,
            log:[] //数组
        };
    }

2、props的初始化

class Button extends React.Component{
//静态属性,给属性赋默认值
static defaultProps = {
    onClick : null,
    className : '',
    text : '默认'
};

render(){
    return ;
}

本篇文章到这就结束了(想看更多就到PHP中文网React使用手册栏目中学习),有问题的可以在下方留言提问。

相关专题

更多
Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

8

2026.01.15

公务员递补名单公布时间 公务员递补要求
公务员递补名单公布时间 公务员递补要求

公务员递补名单公布时间不固定,通常在面试前,由招录单位(如国家知识产权局、海关等)发布,依据是原入围考生放弃资格,会按笔试成绩从高到低递补,递补考生需按公告要求限时确认并提交材料,及时参加面试/体检等后续环节。要求核心是按招录单位公告及时响应、提交材料(确认书、资格复审材料)并准时参加面试。

44

2026.01.15

公务员调剂条件 2026调剂公告时间
公务员调剂条件 2026调剂公告时间

(一)符合拟调剂职位所要求的资格条件。 (二)公共科目笔试成绩同时达到拟调剂职位和原报考职位的合格分数线,且考试类别相同。 拟调剂职位设置了专业科目笔试条件的,专业科目笔试成绩还须同时达到合格分数线,且考试类别相同。 (三)未进入原报考职位面试人员名单。

58

2026.01.15

国考成绩查询入口 国考分数公布时间2026
国考成绩查询入口 国考分数公布时间2026

笔试成绩查询入口已开通,考生可登录国家公务员局中央机关及其直属机构2026年度考试录用公务员专题网站http://bm.scs.gov.cn/pp/gkweb/core/web/ui/business/examResult/written_result.html,查询笔试成绩和合格分数线,点击“笔试成绩查询”按钮,凭借身份证及准考证进行查询。

11

2026.01.15

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

65

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

36

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

75

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

21

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 4.4万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2.2万人学习

JavaScript
JavaScript

共185课时 | 18.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号