React

2021-08-06  本文已影响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 = (<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)

上一篇下一篇

猜你喜欢

热点阅读