先说两句
从今年刚刚毕业到现在已经过了差不多五个多月了,刚刚开始找工作的那个星期还真是心力憔悴,每天奔波在各个公司的面试中,挣扎在各大框架的面试题里,到现在才发现不管是对于Vue
,Angular
,还是React
任何一个其实都算不上是入门,更别说是熟练运用了,决心好好学习,以此记录监督自己。
先定一个小目标,完成一个有趣的问卷调查。
安装
确定已经装好Node
和Npm
,装了?看下一步:先装(不会怎么办,查撒)。
- npm install -g create-react-app
简单的一句话,就O的K!
初始化
在你的项目下执行,创建一个名为qz-react-survey
的react项目,执行起来确实是慢。
- create-react-app qz-react-survey
跑起来也很简单啦,哟,不错哦!
- cd qz-react-survey
- npm start
目录结构
- ├── node_modules 没啥说的吧?安装的所有依赖
- ├── public
- │ ├─ favicon.ico
- │ ├─ index.html 单页应用嘛,就一个index.html,入口文件
- │ └─ manifest.json 咋一看,我确实也不知道是个啥,懂了来补
- ├── src 源文件目录,初始化后目录有点乱,做了一些修改
- │ ├─ index.js
- │ ├─ components
- │ └─ registerServiceWorker.js 这个东东查了一下,用来缓存资源到本地,提高访问速度的
- ├── .gitignore git提交的时候忽略文件
- ├── package-lock.json npm新玩意,没整明白,好像是锁定依赖版本的....
- ├── package.json
- └── README.md
正式开始
进入src
下components
目录,创建第一个页面home.js
,创建目录common
用来存放公共组件,列如header
、footer
等等。
- import React,{ Component } from 'react';
- class Home extends Component {
- render () {
- return (
- <div className="home-container">This is home page</div>
- )
- }
- }
- export default Home;
简单的第一个页面就完成了。
有时会报出这个错误:
在react里面书写<div class="home"></div>
由于class
是JavaScript
关键字,所以react使用className
代替,上述写法改为<div className="home"></div>
即可。
现在进入common
目录下创建两个公共组件Header
、Footer
。
header.js如下:
- import React,{ Component } from 'react';
- class Header extends Component {
- render () {
- return (
- <header className="header" id="header">
- This is header.
- </header>
- )
- }
- }
- export default Header;
footer.js如下:
- import React,{ Component } from 'react';
- class Footer extends Component {
- render () {
- return (
- <footer className="footer" id="footer">
- This is footer.
- </footer>
- )
- }
- }
- export default Footer;
最后在home.js
中引入common
目录下的两个公共组件。
修改后的home.js:
- import React,{ Component } from 'react';
- import Header from './common/header';
- import Footer from './common/footer';
- class Home extends Component {
- render () {
- return (
- <div>
- <Header />
- <div className="home-container">This is home page</div>
- <Footer />
- </div>
- )
- }
- }
- export default Home;
第一步初始化页面就完成了。