TLDR; 在这篇文章中,你将学习如何用Snowpack搭建一个React项目的脚手架,并创建你的第一个React组件。这是来自我的免费React书籍
在Twitter上关注我,很高兴接受你对主题或改进的建议/Chris
为什么是React
React可以让你构建SPA,即单页应用程序。React目前在GitHub上有19万颗星,并被一些业内最大的公司所使用。
组件的内容和原因
React,像许多其他帮助你建立SPA应用程序的库和框架一样,使用组件。组件是孤立的片段,能够运行特定的信息,如产品或广告,有时甚至可能有自己的状态。通过使用组件,你创造了一个很好的逻辑分离,同时也使你的代码在一个多开发者团队中更容易维护。
组件的例子
在React中,你可以使用基于类的方法或基于函数的方法创建一个组件。
基于类的
在基于类的方法中,你的代码看起来像这样。
class Banner extends React.Component {
render() {
return (
<div>I am a Banner Component</div>
);
}
}
上面,你的组件继承自React.Component ,并有一个render() 方法。该方法最终会运行JSX,并在编译阶段转换为HTML。
基于函数
在基于函数的方法中,你的组件是一个函数,最后返回JSX。下面是上述基于类的组件的样子。
const Banner = () => <div>I am a Banner Component</div>;
//alt II
function Banner {
return <div>I am a Banner Component</div>
}
为什么选择Snowpack
在构建React应用程序时,我们需要解决两个主要问题。
- 模块,我们希望能够将我们的代码划分到不同的文件中,以保证秩序和维护等原因。
- JSX,我们需要一种方法来将JSX转译为HTML和JavaScript。
现在有很多工具可以让你达到这个目的,比如Webpack、Parcel等等。Snowpack是一个相对较新的工具,我发现它是一个开始学习React的好选择,因为你可以从简单的开始,几乎没有配置,它也很快速,这对你以后建立更大的项目没有影响。
参考资料
练习 - 用Snowpack设置你的React项目
让我们用Snowpack创建一个React项目。我们将从Snowpack项目的脚手架开始,之后再添加React需要的部分。
- 通过运行下面的命令创建一个新项目。
npx create-snowpack-app app --template @snowpack/app-template-minimal
- 运行
npm install,添加React专用库。
npm install react react-dom --save
- 重命名你的入口点文件。
mv index.js index.jsx
- 在index.jsx中添加以下内容。
import React from 'react';
import ReactDOM from 'react-dom';
ReactDOM.render(
<div>My app</div>,
document.getElementById('root')
);
- 在index.html的脚本标签上方添加以下一行。
<div id="root"></div>
- 用
npm start运行应用程序
npm start
现在你应该看到 "我的应用程序 "在http://localhost:8080。
这将创建一个子目录app。
练习 - 创建你的第一个组件
- 创建一个文件Jedi.jsx,并赋予它以下内容。
import React from 'react';
class Jedi extends React.Component {
render() {
return (
<div>I am a Jedi Component</div>
);
}
}
export default Jedi;
上面我们定义了类Jedi ,并让它继承于React.Component 。此后我们定义了方法render() ,该方法定义了我们的组件将输出什么。我们返回一个JSX语句作为输出。
使用组件
现在我们有了我们的组件,我们可以轻松地使用它。
- 打开index.js文件,在顶部添加以下一行。
import Jedi from './Jedi';
- 找到代码中写着
ReactDOM.render的部分,并把它改成如下样子。
ReactDOM.render(
<Jedi />,
document.getElementById('root')
);
<Jedi> 组件已经被添加到标记中。
- 通过在根目录下运行以下命令来测试你的项目。
npm start
这应该会告诉你,捆绑程序编译正确,你的应用程序在**http://localhost:8080。**
- 打开浏览器并导航到**http://localhost:8080。**你应该在网页上看到以下文字。
I am a Jedi Component
成功了!
练习--创建一个函数组件
让我们来创建另一种类型的组件,这样你就可以进行比较。
- 找到Jedi.js文件,将其内容改为如下。
import React from 'react';
const Jedi = () => <div>I am a Jedi Component</div>
export default Jedi;
你所做的是创建组件,它只是一个简单的函数。让它工作的原因是它返回JSX,所以无论你使用箭头函数还是使用function 关键字,它都需要返回JSX。
-
用
npm start运行该项目。npm start -
打开浏览器并导航到**http://localhost:8080。**你应该看到。
I am a Jedi Component
成功!
摘要
你已经迈出了学习React的第一步,而且你知道在Snowpack中有一个构建工具来支持你。在下一部分,我们将介绍如何渲染各种数据--敬请关注。