React入门

本文深入讲解React的基础概念,包括HTML模板、ReactDOM.render()方法、JSX语法、组件创建及属性验证,适合初学者快速掌握React核心知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是React

Facrbook开源。一个用于构建用户界面的JavaScript库。React 是一个采用声明式,通过对DOM的模拟,最大限度地减少与DOM的交互。高效而且灵活的用来构建用户界面的框架。

HTML 模板

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React!</title>
<script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
<script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
<script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
</head>
<body>

<div id="example"></div>
<script type="text/babel">
ReactDOM.render(
	<h1>Hello, world!</h1>,
	document.getElementById('example')
);
</script>

</body>
</html>

ReactDOM.render()

ReactDOM.render是React 最基本方法,用于将模板转为 HTML 语言,并插入指定的 DOM 节点。

ReactDOM.render(
  <h1>Hello, world!</h1>,//将一个 h1 标题,插入 example 节点
  document.getElementById('example')//返回对拥有指定 ID 的第一个对象的引用。如果没有指定 ID 的元素返回 null。如果存在多个指定ID的元素则返回 undefined。
);

JSX

React 使用 JSX 来替代常规的 JavaScript。允许 HTML 与 JavaScript 的混写

<!DOCTYPE html>
<html>
  <head>
    <script src="../build/react.js"></script>
    <script src="../build/react-dom.js"></script>
    <script src="../build/browser.min.js"></script>
  </head>
  <body>
    <div id="example"></div>
    <script type="text/babel">
      var names = ['Alice', 'Emily', 'Kate'];
      ReactDOM.render(
        <div>
        {
          names.map(function (name, index) {
            return <div key={index}>Hello, {name}!</div>
          })
        }
        </div>,
        document.getElementById('example')
      );
    </script>
  </body>
</html>

组件

React 允许将代码封装成组件(component),然后像插入普通 HTML 标签一样,在网页中插入这个组件。React.createClass 方法就用于生成一个组件类。

//Hellokuangfeng(首字母大写)就是一个组件类,模板插入 <Hellokuangfeng /> 时,会自动生成 Hellokuangfeng 的一个实例
var Hellokuangfeng = React.createClass({
  //render()方法是类组件中唯一必需的方法。
  render: function() {
    return <h1>Hello {this.props.name}</h1>;//组件的属性在组件类的 this.props 对象上获取
  }
});
//所有组件类都必须有自己的 render 方法,用于输出组件。
ReactDOM.render(
  <HelloKuanfeng name="kuangfeng" />,//组件加入一个name属性,值为kuangfeng
  document.getElementById('example')
);

this.props.children在提取子节点的时候,根据子节点的数量(0、1、多个)。他的数据类型分别是undefined、object、array

PropTypes

组件类的PropTypes属性用来验证组件实例的属性是否符合要求

var data = 123;//赋值data
var MyTitle = React.createClass({
  propTypes: {
    title: React.PropTypes.string.isRequired,//proTypes告诉 React,这个 title 属性是必须的,而且它的值必须是字符串。
  },

  render: function() {
     return <h1> {this.props.title} </h1>;
   }
});
	  ReactDOM.render(
        <MyTitle title={data} />,//验证不通过
        document.getElementById('example')
      );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值