前言
由于公司的项目需要 React Native 的相关技术,之前已经开发过 React 创建 Native 的项目。但是,很久没做 Web 的项目了,觉得这是个机会,开始重拾前端,学习现代前端技术。 我是在 Mac OS X 环境进行学习的,Terminal + sublime + atom 是我学习使用的工具。
着手创建第一个 Web 页面
安装
安装 React 需要借助 npm 。在安装 node 之前推荐先安装 Homebrew
- Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
- node
brew install node |
- create-react-app
npm install -g create-react-app |
Hello World
利用 create-react-app 是最佳的方式创建一个新的 React 单应用。
reate-react-app hello-world |
执行以上命令之后就会开启本地服务,并打开 http://localhost:3000/。
项目目录结构
在 Terminal 中查看当前目录的文件结构:
➜ hello-world ls |
- README.md 说明文件
- node_modules node 依赖包
- package.json 依赖包的配置信息
- public 网页
- src 资源
可以分别对该目录下的文件夹进行 ls 操作查看文件详情。
➜ hello-world ls public |
源码结构
- App.js
import React, { Component } from 'react'; |
- index.html
|
通过观察 App.js 和 index.html 文件可以得知,App 中利用 JSX 渲染的元素的父节点是 id 为 root 的 div 元素。
因此,要是想在 Root 里面添加子元素就需要在 App.js 中利用 JSX 编码。
整合进已有的应用
安装 React DOM
npm install --save react react-dom |
通过 CDN
<script src="https://unpkg.com/react@15/dist/react.js"></script> |
小结
-
学习技术的套路 我认为,React 的入门姿势还是很 easy 的,嗯,能创建 hello world 项目就算入门了。 这次的学习认识了 React 单应用的项目结构。刚开始学习应用层的开发,就是学习框架的使用。Web 开发如此,Native 的套路也是如此。但是,对于 React 的学习不能只停留在框架的使用层面,后面肯定需要学习 JavaScript ES6 和 node.js 语言原理,再往后面业务逻辑熟练之后就开始玩架构、玩性能。然而不论怎样终端的开发,最终都是对系统资源的使用,所以,了解操作系统原理才是最关键的,这样玩什么都很 High。
-
与 React Native 的区别 React 和 React Native 仍是有差别的。 React Native 存在 index.ios.js 这样的入口文件,作为应用的程序入口,进行 App 逻辑处理、UI 渲染等。而 React Web 应用则是还包含 HTML 模版的相关目录。 而在 React Native 中还有 StyleSheet 模块,这样就可以让 Native 用类似 CSS 的语法来渲染原生应用的样式。而在 React 的 Web 项目中样式使用的是标准 CSS 。 所以,本来设想的 React Native 中的代码可否直接 Copy Paste 到 Web 的设想经验证失败了。 毕竟,由于开发平台差异,还是很难做到一套代码多处复用的。 因此,还是要多多完善技能树,应对不同问题,给出不同解决方案。
-
跨平台的尝试 上面说,一套代码直接跨平台使用失败了。然而,目前已有大厂商提供了自己的跨平台解决方案,一套代码多处运行,比如携程开发了一套新的框架 Moles。 可以查看相关资料: http://www.infoq.com/cn/articles/ctrip-moles GitHub 地址: https://github.com/nygard/class-dump/releases