react hooks使用
Dynamic sites need flexibility. Flexibility results in more code. More code means increased maintenance time. How can we keep our sites maintainable and fast?
动态站点需要灵活性。 灵活性导致更多代码。 更多代码意味着增加维护时间。 我们如何保持网站的可维护性和快速性?
One of the ways to load sites faster is to send browsers less JavaScript to process.
更快加载网站的方法之一是向浏览器发送较少JavaScript进行处理。
We can shave off a few bytes by lazy-loading React components (“components” hereafter). Such a dynamic loading can also make code maintainable (but not always).
我们可以通过延迟加载React组件(以下简称“组件”)来节省一些字节。 这种动态加载还可以使代码可维护(但并非始终如此)。
We’ll take a look at how to load components dynamically, and check out some more advanced usage. Lastly, we’ll load only the components being used.
我们将研究如何动态加载组件,并检查一些更高级的用法。 最后,我们将仅加载正在使用的组件。
目录 (Table of Contents)
动态加载组件 (Loading Components Dynamically)
Suppose you are showing a different component depending on a property, subredditsToShow
.
假设您根据属性subredditsToShow
显示了一个不同的组件。
Try out here
在这里尝试
import React from 'react';
import shortid from 'shortid';
import LearnReactView from './views/learnreactView';
import ReactView from './views/reactView';
import JavaScriptView from './views/javascriptView';
import NullView from './views/NullView';
export default function App({ subredditsToShow }) {
const subredditElementList = subredditsToShow.map(
subreddit => {
switch (subreddit) {
case 'reactjs':
return <ReactView key={shortid.generate()} />;
case 'learnreactjs':
return (
<LearnReactView key={shortid.generate()} />
);
case 'javascript':
return (
<JavaScriptView key={shortid.generate()} />
);
defa