关于React组件(React基础课程3)

首先

本次将写关于React组件。

系列

這篇文章是為React基礎課程而連載的。以下是前一章的內容,供有興趣的人參考。

想要在JSX中展开变量或使用箭头函数(React基础课程2)- Qiita

第一篇文章如下。

使用React来渲染JSX内容(使用create-react-app)(React基础课程1)- Qiita

“组件”的含义是什么?

组件的概念与函数类似。也就是说,将输入进行某种处理并输出结果的部分或组件被称为组件。然后,通过组合这些组件来构建更大的应用程序。

文法

首先,创建一个通常的 React Element,然后再创建一个 React Component。

React元素

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

const returnTxt = () => {
  return <p>sample txt</p>;
};

render(returnTxt(), document.getElementById("root"));
スクリーンショット 2019-08-04 22.46.40.png

那么,让我们尝试使用 React 组件来编写这段代码。

React组件

在进行定义时,有一些规则需要遵循。

    • const で宣言する場合や、renderの第1引数のJSXとして渡す際、文頭を大文字にします

 

    renderの第1引数のJSXとして渡す際、タグで囲みます(閉じタグも書く) 例:
import React from "react";
import { render } from "react-dom";

const ReturnTxt = () => {
  return <p>sample txt</p>;
};

render(<ReturnTxt />, document.getElementById("root"));

尽管结果相同,但 React 组件的创建方式略有不同。

那么,让我们继续谈论并尝试向React组件传递一些值吧。

在这种情况下,您可以将参数传递给React组件,方法是将其放在render函数的第一个参数的JSX中,类似于key=”value”的形式。

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

const ReturnTxt = props => {
  return <h1>{props.title}</h1>;
};

render(<ReturnTxt title="My Blog" />, document.getElementById("root"));
delicate-butterfly-nvry9_-_CodeSandbox.png

你可以传递多个参数。

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

const ReturnTxt = props => {
  return (
    <div>
      <h1>{props.title}</h1>
      <p>{props.body}</p>
    </div>
  );
};

render(
  <ReturnTxt title="My Blog" body="hello, world" />,
  document.getElementById("root")
);

让我们在 React 组件中查看 props 的内容。

console.log(props)

控制台将以以下方式输出。

Object {title: "My Blog", body: "hello, world"}
    title: "My Blog"
    body: "hello, world"

从标题和内容中可以看出已经赋值了。

可以将props以其他方式接收。我会先写下代码。

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

const ReturnTxt = ({title, body}) => {
  return (
    <div>
      <h1>{title}</h1>
      <p>{body}</p>
    </div>
  );
};

render(
  <ReturnTxt title="My Blog" body="hello, world" />,
  document.getElementById("root")
);

何不同的地方在于箭頭函式的參數部分,使用花括號 { } 接收,例如這次可以將對象內容存入名為title和body的變量中,並直接使用這些變量名進行展開。

我认为,与使用道具相比,能够清楚地知道接收到了什么是更好的选择。

请看/参考如下内容

    改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで | 山田 祥寛
广告
将在 10 秒后关闭
bannerAds