React

作者: 大写的空气 | 来源:发表于2021-08-06 15:28 被阅读0次

React的Hello World

//html文件
<div id="root"></div>
//js文件
ReactDOM.render(
  <h1>Hello, world!</h1>
  document.getElementById('root')
);

也可以使用JSX语法实现

const name = 'world!';
const element = <h1>Hello, {name}</h1>;
ReactDOM.render(
  element,
  document.getElementById('root')
);

JSX特定属性

  • 使用引号,来将属性值指定为字符串字面量
    const element = <div tableIndex="0"></div>;
  • 使用大括号,插入一个变量或表达式
    const element = <img src={user.avatarUrl}></img>
  • 标签里没有内容,可以使用/>来闭合标签
  • 通过将输入内容转义成字符串,有效防止XSS(跨站脚本)攻击
  • Babel会把JSX转译为一个名为React.createElement()函数调用
const element = (<h1 className="greeting">Hello</h1>);
//等于
const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello'
);

每秒调用ReactDOM.render()的定时器例子

function tick() {
  const element = (
    <div>
      <h1>Hello</h1>
      <h2>Now {new Date().toLocaleTimeString()}</h2>
    </div>
  );
  ReactDOM.render(element, document.getElementById('root'));
}
setInterval(tick, 1000)

组件

  • 单一组件
function Welcome(props) {
  return <h1>Hello, {props.name}</h1>
}
const element = <Welcome name="Sara"/>;
ReactDOM.render(
  element,
  document.getElementById('root')
);
  • 组合组件
//输出多行文字信息
function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

function App() {
  return (
    <div>
      <Welcome name="Sara" />
      <Welcome name="Cahal" />
      <Welcome name="Edite" />
    </div>
  );
}

ReactDOM.render(
  <App />,
  document.getElementById('root')
);

类组件

每次组件更新时 render 方法都会被调用,但只要在相同的 DOM 节点中渲染 <Clock /> ,就仅有一个 Clock 组件的 class 实例被创建使用。这就使得我们可以使用如 state 或生命周期方法等很多其他特性

class Clock extends React.Component {
  render() {
    return(
      <div>
        <h1>Hello</h1>
        <h2>It is {this.props.date.toLocaleTimeString()}</h2>
      </div>
    );
  }
}
function tick() {
  ReactDOM.render(
    <Clock date={new Date()} />,
    document.getElementById('root')
  );
}
setInterval(tick, 1000);

使用State实现,内部变量

class Clock extends React.Component {
  constructor(props) {
    super(props);
    this.state = {date: new Date()};
  }

  render() {
    return (
      <div>
        <h1>Hello, world!</h1>
        <h2>It is {this.state.date.toLocaleTimeString()}.</h2>
      </div>
    );
  }
}

ReactDOM.render(
  <Clock />,
  document.getElementById('root')
);


快速创建React App

npx create-react-app test
cd test
npm start

Tic Tac Toe (codepen.io)在线编码
nodjs下载地址
创建新的 React 应用 – React (docschina.org)

相关文章

  • React基础

    react 教程 react 组件介绍 react state 介绍 react Props 介绍 React:组...

  • 学习react no.1

    学习react no.1 react 定义 react 特点 react

  • React Native 学习之路

    React 相关资料 React Components React Properties React State ...

  • React基础

    React包含react元素和react组件 react元素 react组件 react组件分为函数组件和类组件 ...

  • React面试题 整理脑图

    react基础 React生命周期 react-router react进阶 react Hooks redux 其他

  • react 导入中的 as

    import React from 'react'只导入 是 React。 而import * as React ...

  • ES5与ES6小结部分

    1var React=require('react'); 等价 import React from ' react...

  • React DnD基础概念和整体架构

    React DnD 的英文是 Drag and Drop for React。React DnD 是 React ...

  • React

    React 《React 官网文档》 React简介 React概念 React官网学习实践 - jSX简介 Re...

  • React学习笔记_01

    React 基础组件 react概述 npm i react react-dom react包 是核心,提供创建元...

网友评论

      本文标题:React

      本文链接:https://www.haomeiwen.com/subject/szobvltx.html