<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>React - 标签 - 开发者技术小屋</title>
        <link>https://www.developerhome.net/tags/react/</link>
        <description>React - 标签 - 开发者技术小屋</description>
        <generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Fri, 11 May 2018 14:06:26 &#43;0000</lastBuildDate><atom:link href="https://www.developerhome.net/tags/react/" rel="self" type="application/rss+xml" /><item>
    <title>React中的按需加载（支持React Router v4）</title>
    <link>https://www.developerhome.net/archives/217/</link>
    <pubDate>Fri, 11 May 2018 14:06:26 &#43;0000</pubDate>
    <author>Jarod</author>
    <guid>https://www.developerhome.net/archives/217/</guid>
    <description><![CDATA[<div class="featured-image">
                <img src="/uploads/2026/06/cover-217.jpg" referrerpolicy="no-referrer">
            </div><p>在用React来开发SPA(single page application)中，一般都会使用react router来做页面的路由，而如果应用很大的话，一般都需要使用按需加载，既当进入到某个url中时才去加载其所对应的组件，这样可以让打包后的js更小，增强初始化时的速度。那么如何来完成这种按需加载呢？</p>
<p>由于react router 更新到最新的v4后，和之前发生了很大的变化，因此，此篇文章我将分为两部分来分别介绍react router v4前版本和v4版本的按需加载。</p>
<p>首先我们来建一个项目</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm init</span></span></code></pre></div></div>
<p>通过按照提示配置后，我们初始化了项目，开始安装依赖</p>
<p>先安装我们node运行环境需要express和body-parser</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install express body-parser</span></span></code></pre></div></div>
<p>然后安装开发需要的几个环境</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install --save-dev babel-core babel-loader babel-preset-es2015 babel-preset-react jsx jsx-loader prop-types react react-dom reat-router@3.2.1 webpack webpack-cli</span></span></code></pre></div></div>
<p><strong>此处注意，我安装的是3.2.1的react router 这个是当前v4版本以下的最后一个版本</strong></p>]]></description>
</item>
<item>
    <title>webpack的使用</title>
    <link>https://www.developerhome.net/archives/170/</link>
    <pubDate>Thu, 01 Feb 2018 11:54:30 &#43;0000</pubDate>
    <author>Jarod</author>
    <guid>https://www.developerhome.net/archives/170/</guid>
    <description><![CDATA[<div class="featured-image">
                <img src="/uploads/2026/06/cover-170.jpg" referrerpolicy="no-referrer">
            </div><p>webpack时一个打包用于前端打包的应用，可以使用npm来安装</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install webpack -g</span></span></code></pre></div></div>
<p>使用<code>-g</code>表示全局安装，这样就可以直接使用webpack命令了</p>
<p>现在就让我们来一步步新建一个简单的React应用，并使用webpack来打包生成<em><strong>线上版本</strong></em></p>
<p>首先，建立一个文件夹</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir lesson_1</span></span></code></pre></div></div>
<p>进入文件夹中，我们先用npm初始化</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm init</span></span></code></pre></div></div>
<p>一直回车直到最后提示使用yes确定即可</p>
<p>现在目录下多了个package.json</p>
<p>现在我们来安装依赖包</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install --save-dev webpack react react-dom babel-core babel-loader babel-preset-es2015 babel-preset-react jsx jsx-loader</span></span></code></pre></div></div>
<p>这里说下几个包都代表什么：</p>]]></description>
</item>
</channel>
</rss>
