随著现代化网页(Modern WVeb)开发专业和复杂性的提升以及对用户体验越来越高的要求下,网页开发已从过去的 Web Develpoer 一夫当关,转向专业分工,更加细分成网页前端(Web Front End)、网页后端(Web Back End)等职位。此外,由于跨平台丶跨浏览器的需求日益增加,技术变化更迭快速,市场上对于前端工程师(Web Front End Engineer)的需求也与日俱增,前端工程的(Front End Engineering)所要面对的挑战也越来越多。
前端工程范畴
事实上,在目前的业界,前端工程的定位光谱非常广泛,有聚焦在网页设计(Web Design),也有专注在软件工程(Software Engineering)的部份,本书则是将前端工程定位在软件工程的范畴。而 HTML、CSS 和 JavaScript 是前端工程最重要的技术基础。过去一段时间,我们所认为的前端工程主要专注在浏览器平台,但现在的 Web 平台已经不再局限于桌面浏览器,而是必须面对更多的跨平台、跨浏览器的应用开发场景 ,其中包含∶
1.网页浏览 器(Web Browser),一般的网页应用程序开发
2.通过 CLI 指令去操作的 Headless 浏览器(Headless Application)。例如∶ phantomJS、CasperJS 等
3.运作在 WebView 浏览器核心(WebView Application)的应用。例如∶ Apache Cordova丶Electron丶NW.js 等行动丶桌面应用程序开发
4.原生应用程序(Native Application),通过 Web 技术撰写原生应用程序。例如∶ React Native丶Native Script 等
过去几年,前端开发就像经历了文艺复兴(Rinascimento)的年代,开始了各种框架丶套件百花齐放的时代。虽然现在有更多好用工具可以协助开发 ,但前端工程师似乎并没有变得比较轻松。以往若能妥善运用 jQuery 等函数库就可以应付大部分前端工程师的工作,但现在前端招聘广告上不仅要求精通 HTML、CSS 和 JavaScript,还要对于还要对于 Backbone丶Ember丶Angular丶React、Vue 等 JavaScript 框架或函数库有一定程度的了解。
在众多 JavaScript 框架或函数库中,React 是 Facebook推出的开源 JavaScript Library,它的出现让许多革新性的 Web 观念开始流行起来,例如∶Virtual DOM、 Web Component、更直觉的定义式 UI设计、更优雅地实现 Server Rendering等。接下来本书将通过介绍 React 生态系(ecosystem)带领读者入门 React 的世界,让读者可以从零开始慎的动手用 React 开发跨平台应用程序。
根据 React 官方网站 的说明∶ React 是一个专注于 UI(View)的 JavaScript 函数库(Library)。自从Facebook于 2013年开源 React 这个函数库后,相关的生态系开始蓬勃发展。事实上,通过学习 React 生态系(ecosystem)的过程中,可以让我们顺便学习现代化 Web 开发的重要观念(例如∶模块化、ES6+丶Webpack、 Babel丶ESLint丶函数式程序设计等),成为更好的开发者 。
ReactJS
ReactJS 是 Facebook 推出的 JavaScript 函数库,若以 MVC 框架来看,React 定位是在 View 的范畴。在 ReactJS 0.14 版之后,ReactJS 更把原先处理 DOM的部分独立出去(react-dom),让 ReactJS 核心更单纯,也更符合 React 所倡导的 Learn once,write everywhere 的理念。事实上,ReactJS 本身的 API 相对单纯,但由于整个生态系非常庞大,因此学习 React 却是一条漫长的道路。此外,当你想把 React 应用在你的应用程序时,你通常必须学习整个 React Stack 才能充分发挥 React 的最大优势。
JSX
事实上,JSX 并非一种全新的语言,而是一种语法糖(Syntatic Sugar),一种语法类似XML 的 ECMAScript 语法扩充。在 JSX 中 HTML 和组建这些元素标签的程序码有紧密的关系,这和过去我们强调 HTML、JavaScript 分离的观念有很大不同。当然,你可以选择不要在 React 使用 JSX,不过相信我,当你真正开始编写 React 元件(Component)时,你会很庆幸有 JSX 真好。
NPM
NPM(Node Package Manager)是 Node.js 下的主流包管理工具。在 NPM上有非常多的包,可以让你不用再重造轮子,更可以让你可以轻松用指令管理不同的包。由于 NPM 主要是基于 CommonJS的规范,通常必须搭配 Browserify 这样的工具才能在前端使用 NPM 的模块。然而因 NPM 是基于 Nested Dependency Tree,不同的包有可能会在引入依赖时会引入相同但不同版本的包,造成档案大小过大的情形。这和另一个包管理工具 Bower 专注在前端包且使用 Flat Dependency Tree (让使用者决定相依的包版本)是比较不同的地方。
ES6+
ES6+ 系指ES6(ES2015)和ES7 的联集,在 ES6+新的标准当中引入许多新的特性和功能,弥补了过去 JavaScript 被诟病的一些特性。由于未来 React 将以支持 ES6+ 为主,因此直接学习ES6+ 用法是相对好的选择,本书的所有范例也将会以 ES6+编写。
Babel
由于并非所有浏览器都支持ES6+语法,所以通过 Babel 这个 JavaScript 编译器(可以想成是翻译机)可以让你的ES6+ 、JSX 等程序码转换成浏览器可以看的懂得语法。通常会在数据夹的 root 位置加入 .babelrc 进行转译规则 preset 和引用外挂(plugin)的设定。
JavaScript 模块化开发
随著 Web 应用程序的复杂性提高,JavaScript 模块化开发已经成为必然的趋势,以下简单介绍 JavaScript 模块化的相关规范。事实上,在一开始没有官方定义的标准时出现了各种社群自行定义的规范和实践 。
1.CDN-Based
也就是最传统的 <script> 引入方式,然而使用这种方式虽然简单方便,但在开发实际中大型应用程序时会产生许多弊端 ∶
o 全局作用域容易造成变数污染和冲突
o 文件只能依照 <script> 顺序载入,不具弹性
o 在大型专案中各种资源和版本难以维护
o 必须由开发者自行判断模块和函数库之间的依赖关系
2. AMD
Asynchronous Module Definition 简称 AMD,为非同步载入模块的规范,其在定义时模块时即需定义依赖的模块。AMD 常用于浏览器端,其最著名的实践为 RequireJS基本格式 ∶
define(id?, dependencies?, factory);
3. CommonJS
CommonJS 规范是一种同步模块载入的规范。以 Node.js 其遵守 CommonJS规范,使用 require 进行模块同步载入,并通过
exports 、 module.exports 来输出模块。主要实现为 Node.js 服务器端的同步载入和浏览器端的 BrOWserify 。
4. CMD
CMD 全称为 Common Module Definition,其规范和 AMD 类似,但相对简洁,却又保持和 CommonJS 的兼容性。其最大特色为∶依赖就近,延迟执行。主要实现为∶ Sea.js。
5.UMD
Universal Module Definition 是为了要兼容 CommonJS 和 AMD所设计的规范,希望让模块能跨平台执行。
6. ES6 Module
ECMAScript6 的标准中定义了 JavaScript 的模块化方式,让 JavaScript 在开发大型复杂应用程序时上更为方便且易于管理,亦可以取代过去 AMD、 CommonJS 等规范,成为通用于浏览器端和服务器端的模块化解决方案。但目前浏览器和 Node 在 ES6 模块支持度还不完整,大部分情况需要通过 Babe转译器进行转译。
【下载地址】
链接: https://pan.baidu.com/s/11ikONzi5aN5dCcOBb2s6Dw
提取码: f1h7
相关文章
希望读者把阅读这本书的过程当做一个旅程,由浅入深地了解 React 和 Redux,如果你对 React 和 Redux 技术已经有一些了解
本书从几个维度介绍了React。一是作为 View 库,它怎么实现组件化,以及它背后的实现原理。二是扩展到 Flux 应用架构及重要的衍生品
本书旨在解决前端开发者的烦恼,使他们的生活更有意义、更加快乐,并通过介绍 React帮助他们赚到更多的钱——这些会以一种快速的方式进行。本书
ReactJS 是 Facebook 推出的 JavaScript 函数库,若以 MVC 框架来看,React 定位是在 View 的范畴。
本书以 React 技术栈为核心,在介绍 React 用法的基础上,从源码层面分析了Redux 思想,同时着重介绍了服务端渲染和同构应用的架
React 的核心思想是∶ 封装组件。
本书共分四部分,全面介绍如何使用 React与 Redux进行Web 开发。
本书是专门为希望学习React脚本库,同时也希望学习当前JavaScript语言最新特性的开发人员而编写的。
通过介绍 React 中最有价值的设计模式,展示如何将设计模式和最佳实践应用于现实的新项目和已有项目中
本书从现代前端开发的标准、趋势和常用工具入手,由此引出了优秀的构建工具 webpack 和 JavaScript库 React,之后用一系列
本书是 React 入门书。前 3章介绍如何从空白的 HTML页面开始构建应用。第4章介绍 JSX语法。从第5章开始,你会学习到在实际开发中
React 是由 Facebook 创建的一个开源项目。它提供了一种在 JavaScript 中构建用户界面的全新方式。自从它公开发布后,这
React Router 是完整的 React 路由解决⽅案 React Router 保持 UI 与 URL 同步。它拥有简单的 API
本书以实战为主旨,通过完整的电商类 App 项目实例,来介绍 React Native 中常用的组件、API、布局、第三方组件和原生接口,让
Native 有更好的人机交互体验:1. 更丰富细腻的动画效果 2. 更精准的手势识别 3. 原生控件有更好的体验 ;4. 更合适的线程模型
FlashFXP绿色版网盘下载,附激活教程 1839
FlashFxp百度网盘下载链接:https://pan.baidu.com/s/1MBQ5gkZY1TCFY8A7fnZCfQ。FlashFxp是功能强大的FTP工具
Adobe Fireworks CS6 Ansifa绿色精简版网盘下载 1607
firework可以制作精美或是可以闪瞎眼的gif,这在广告领域是需要常用的,还有firework制作下logo,一些原创的图片还是很便捷的,而且fireworks用法简单,配合dw在做网站这一块往往会发挥出很强大的效果。百度网盘下载链接:https://pan.baidu.com/s/1fzIZszfy8VX6VzQBM_bdZQ
navicat for mysql中文绿色版网盘下载 1652
Navicat for Mysql是用于Mysql数据库管理的一款图形化管理软件,非常的便捷和好用,可以方便的增删改查数据库、数据表、字段、支持mysql命令,视图等等。百度网盘下载链接:https://pan.baidu.com/s/1T_tlgxzdQLtDr9TzptoWQw 提取码:y2yq
火车头采集器(旗舰版)绿色版网盘下载 1737
火车头采集器是站长常用的工具,相比于八爪鱼,简洁好用,易于配置。火车头能够轻松的抓取网页内容,并通过自带的工具对内容进行处理。站长圈想要做网站,火车头采集器是必不可少的。百度网盘链接:https://pan.baidu.com/s/1u8wUqS901HgOmucMBBOvEA
Photoshop(CS-2015-2023)绿色中文版软件下载 1858
安装文件清单(共46G)包含Window和Mac OS各个版本的安装包,从cs到cc,从绿色版到破解版,从安装文件激活工具,应有尽有,一次性打包。 Photoshop CC绿色精简版 Photoshop CS6 Mac版 Photoshop CC 2015 32位 Photoshop CC 2015 64位 Photoshop CC 2015 MAC版 Photoshop CC 2017 64位 Adobe Photoshop CC 2018 Adobe_Photoshop_CC_2018 Photoshop CC 2018 Win32 Photoshop CC 2018 Win64