reactjs - 仅在类中而不在函数中导入组件
问题描述
我有点困惑为什么我们需要在 react 创建类时导入组件?为什么我们不能像在函数组件中那样简单地导入反应?
解决方案
函数式组件只是一个普通的 JavaScript 函数,它接受 props 作为参数并返回一个 React 元素。一个类组件需要你从 React 扩展。组件并创建一个返回 React 元素的渲染函数。
要获取有关功能组件与基于类的组件的详细信息,您可以阅读本文
React 之所以流行,是因为它的可重用 Web 组件的概念
在创建功能组件时,我们正在编写一个函数,返回我们希望该组件表示的 JSX。然后在ReactDOM.render()
我们有一个功能组件的实例,将它包装在 JSX 标签中,这是一个自闭合组件
函数返回我们想要在页面上表示的 ui,但是函数组件无法完成我们需要执行的所有操作,例如。状态和生命周期方法
函数式组件也称为无状态组件,因为我们不能像生命周期方法那样用它来做所有复杂的事情
基于类的组件
类的语法与 ES6 相同
对于基于类的组件,我们使用 Javascript 中的原型系统及其设置原型React.Component
,这为我们提供了一堆好东西React.Component
应用程序.js
import React, {Component} from "react"
class App extends Component {
constructor(){
super()
this.state={
name:"Bhavya",
age: 20
}
}
render(){
return(
<div>
<h1>{this.state.name}</h1>
<h3>{this.state.age} years old</h3>
</div>
)
}
}
export default App;
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from "./App"
class Main extends React.Component {
render() {
return (
<h1>Hello world!</h1>
);
}
}
ReactDOM.render(<App />, document.getElementById('root'));
上面的代码App.js
也可以这样写:
应用程序.js
import React from "react" ----> Take note of these two lines
class App extends React.Component {
constructor(){
super()
this.state={
name:"Bhavya",
age: 20
}
}
render(){
return(
<div>
<h1>{this.state.name}</h1>
<h3>{this.state.age} years old</h3>
</div>
)
}
}
export default App;
在上面的例子中,App 类扩展了组件,所以 React 认为这个类是一个组件,并且它渲染(返回)一个 React 元素。所以一个 React 类组件是一个 ES6 类,一旦它“扩展”React,它将是一个组件组件 见这个
要了解有关何时使用基于功能或类的组件的更多信息,请参阅此SO ans
React 是 react 包的默认导出,而 Component 是该包中的命名导出。看到这个
要知道你为什么import React
在功能组件中参考这个博客
推荐阅读
- apache - Apache Server - 限制子文件夹对本地网络的访问
- python - 如何将标头与 .csv 一起导出
- phpstorm - 要设置 PhpStorm 2020.3.1 显示悬停 htmk 标签的一些提示的选项
- ios - SwiftUI 不使用自动布局,如何为所有设备创建独特的尺寸界面?
- python - 如何在构建期间生成 python 代码并将其包含在 python 轮中?
- jta - 通过 JTA 中的单个事务提交多个 XAResource
- angular - Angular - 在材料步进器中使用相同的组件
- c++ - 是否有没有未定义行为的 C++ 安全版本?
- javascript - 如何检查是否选择了动态出现的输入
- file - 如何在汇编语言 MASM 中打开现有文件并写入文件(覆盖内容),irvine32 位