React 基础

1 ReactDom.render()

将虚拟组件插入真实组件root中。

import React from ‘react‘;
import {render} from ‘react-dom‘;

render(<h1>Hello, React!</h1>, document.getElementById(‘root‘));

了解react,首先要认识的是该方法,也是react最基本的一个方法。

2 JSX语法

react用的是JSX语法,JavaScript 代码中可以写 HTML 代码,js代码用{}包含。

JSX 语法的最外层,只能有一个节点

// 错误
var myTitle = <p>Hello</p><p>World</p>;
// 正确
var myTitle = <p>Hello World</p>;

JSX 语法中可以插入 JavaScript 代码,使用大括号

var myTitle = <p>{‘Hello ‘ + ‘World‘}</p>

3 Babel转码

JavaScript 引擎(包括浏览器和 Node)都不认识 JSX,需要首先使用 Babel 转码,然后才能运行。

4 创建组件

有两种方式创建组件

方法一(createClass方法):

var MyTitle = React.createClass({
    getDefaultProps: function () {
        return {
            title: ‘Hello getDefaultProps‘
        };
    },
    render: function() {
        return <h1> {this.props.title} </h1>;
    }
});

方法二(ES6方法):

5 组件的属性

import React from ‘react‘;
import {render} from ‘react-dom‘;

class MyTitle extends React.Component {
    render(){
        return <h1>hello {this.props.name}</h1>;
    }
};

render(<MyTitle name="larry"/>, document.getElementById("root"));

组件的用法与原生的 HTML 标签完全一致,可以任意加入属性,比如 < MyTitle name="larry"> ,就是 MyTitle组件加入一个 name 属性,值为 larry。

组件的属性可以在组件类的 this.props 对象上获取,比如 name 属性就可以通过 this.props.name 读取。上面代码的运行结果如下。

6 组件的状态

组件免不了要与用户互动,React 的一大创新,就是将组件看成是一个状态机,一开始有一个初始状态,然后用户互动,导致状态变化,从而触发重新渲染 UI。

var LikeButton = React.createClass({
    getInitialState: function() {
        return {liked: false};
    },
    handleClick: function(event) {
        this.setState({liked: !this.state.liked});
    },
    render: function() {
        var text = this.state.liked ? ‘like‘ : ‘haven\‘t liked‘;
        return (
            <p onClick={this.handleClick}>
                You {text} this. Click to toggle.
            </p>
        );
    }
});

上面代码创建了一个 LikeButton 组件,它的 getInitialState 方法用于定义初始状态,也就是一个对象,这个对象可以通过 this.state 属性读取。

当用户点击组件,导致状态变化,this.setState 方法就修改状态值,每次修改以后,自动调用 this.render 方法,再次渲染组件。

由于 this.props 和 this.state 都用于描述组件的特性,可能会产生混淆。

一个简单的区分方法是,this.props 表示那些一旦定义,就不再改变的特性,而 this.state 是会随着用户互动而产生变化的特性。

时间: 2024-09-29 19:42:45

React 基础的相关文章

React(一):React基础

本文主要是简单说明react基础语法概念和知识,从零开始系列的先绕行官网 组件: JSX语法:在JS里直接编写HTML    return( <div>Hello</div> )  也可以自定义标签,自定义组件首字母需大写 return <MyTag>Hello</MyTag> state:组件的状态,就是数据,更新state,界面可以重新渲染,不需要操作DOM,setState是异步函数 props:state 和 props 主要的区别在于 props 

react基础用法一(在标签中渲染赋值)

react基础用法一(渲染赋值) 如图所示最简单的变量使用方法 格式 let 变量名称 = 赋值: 渲染格式直接用 {变量名称} 就可以直接渲染到页面 如图所示第二种渲染方法 格式 const 变量名称 = <标签>内容</标签> 渲染格式 {变量名称} 即可渲染到页面展示 如图所示也可以渲染一个对象包括它的属性对应展示到页面 格式 const 对象名称 = { key : value } 多个对象属性需要{ key1 : value1, key2 : value2 }用逗号分隔

React基础知识

学习文档(按优先级排列)http://reactjs.cn/react/docs/tutorial-zh-CN.htmlhttp://www.cnblogs.com/Mrs-cc/p/4969755.html (es5与es6的兼容性写法) React.createClass() 我们在一个 JavaScript 对象中传递一些方法到 React.createClass() 来创建一个新的React组件.这些方法中最重要的是 render,该方法返回一颗 React 组件树,并不是实际的HTML

react基础:插值 ,Props属性

一:插值插值语法是{},在大括号中可以书写任意的表达式,Js内置的方法,定义 的方法,运算符,语句等等{/*在jsx语法中书写注释一定要写在插值符号中*/} 必须是/**/ 且必须放到{}中eg: 二:Props属性两个相同div,给其中的一个添加一个类,这个div展示的样式就不一样的,因为他具有这个属性就叫class区别于其他的div同理来说对于完全一致的组件,展示完全一致,如果给其中一个添加一些属性,这个组件展示的结果就可以能会不同了,因此react提出组件属性的概念,可以对组件添加一些属性

React基础

解剖index.ios.js Render函数: 返回我们希望这个组件渲染出来的视图 样式 创建样式: const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', }, }); 使用样式: <Text style={styles.container}> Welcome to React Na

react 基础语法复习1- 搭建开发环境

之前有看过阮一峰老师的react教程跟着做了一遍,学习了一下.好久没看,有点忘记了,这次跟着脚手架工具系统的复习一遍.顺便学习学习 react-router 和 redux 首先,脚手架工具我使用的是create-react-app ,这个是官方出的,感觉比较靠谱.不过真实使用起来感觉比vue-cli复杂,webpack配置文件都在node_modules文件夹里面,找了好久,并且开发环境和生产环境有分开配置了. 全局安装 脚手架工具 cnpm i -g create-react-app //

react基础总结篇1,定义组件实现父子组件传值

前端时间学习了vue,这几天开始入手react了. react项目搭建起来之后,我们一定会定义很多个组件.同样的也会涉及到父子组件的传值.今天来整理一下这个知识. 1,定义子组件步骤 1,引入react. import React,{Component} from 'react'; import './style.less'; 2,写组件并export default导出去用到了es6中的calss语法,提前说一下,this.props.content用来接收父组件中content的值,this

2017.11.30 React基础语法之一组件

1.推荐一个React学习中文网站:http://www.css88.com/react/ 2.使用jsx来将代码封装成React组件,然后像插入普通 HTML 标签一样,在其他地方插入这个组件.使用React.createClass用于生成一个组件 var MyComponent=React.createClass({ render: function() { return <h1>Hello world!</h1>; } }); ReactDOM.render( <MyC

React基础篇(2) -- state&amp;props&amp;refs

内容简介 state props refs 行内样式及动态类名 state 基本介绍 React 把组件看成是一个状态机(State Machines).通过与用户的交互,实现不同状态,然后渲染 UI,让用户界面和数据保持一致. React 里,只需更新组件的 state,然后根据新的 state 重新渲染用户界面(不要操作 DOM). 初始化状态: constructor() { super() this.state = { stateName1 : stateValue1, stateNam