这是我参与2022首次更文挑战的第19天,活动详情查看:2022首次更文挑战。
以结果为导向,写给刚学完前端三剑客和想要了解 React 框架的小伙伴,使得他们能快速上手(省略了历史以及一些不必要的介绍)。
重构
src/App.js 中所有的组件都是用 function 来声明的,我们可以使用 ES6 中新增的箭头函数来简化它们。
- 举例:
function () { ... }
const () => { ... }
const item => { ... }
const (item) => { ... }
const (item, index) => { ... }
声明箭头函数时,如果只有一个参数,可以把括号去掉;但多个参数时,括号是必须的(为了避免麻烦,我们参数统一使用括号)。
- 实际应用:
const App = () => {
return (
<div>
...
</div>
);
};
const List = () => {
return (
<ul>
{list.map((item) => {
return (
<li key={item.objectID}>
...
</li>
);
})}
</ul>
);
};
可以看到 map() 也和其他函数一样可以使用箭头函数简化。
如果一个箭头函数没有执行任何任务,只返回信息,我们也可以去掉 {} 以及 return,函数会自己附上一个隐式的返回声明:
const App = () => (
<div>
...
</div>
);
const List = () => (
<ul>
{list.map((item) => (
<li key={item.objectID}>
...
</li>
))}
</ul>
);
可以看到 JSX 简洁了许多,但你要记住:这是可选的步骤,并不是必须的。
且函数签名和返回语句之间需要引入业务逻辑时,必须要加上 {} 以及 return。
React DOM
现在我们已经大概了解了组件的定义,让我们来看看 App 组件的实例化。
打开 src/index.js 文件:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
reportWebVitals();
React.StrictMode 是一个用来突出显示应用程序中潜在问题的工具,不用管它。
重点只有这一句:
ReactDOM.render(<App />, document.getElementById("root"));
我们用 ReactDOM.render() 函数让 JSX 替换掉 HTML 中的一个 DOM 节点,也就是将 React 集成到了 HTML中。
该方法需要传入两个参数:
- 首先是要渲染的 JSX,你可以传入一个简单的 JSX,也可以直接传入一个组件的实例,如
<App />; - 第二个参数指定了 React 应用在何处显示你的 HTML,你可以在 public/index.html 文件中找到这个
id="root"的元素。
专栏
因为参加打卡活动是每日更新,所以可能比较短小,可以关注一下 React 入门专栏。
在更新完后会整合为一整篇,感谢关注和点赞!