新書推薦:
《
金托邦:江湖中的沉重正义
》
售價:HK$
60.5
《
易经今解:释疑·解惑·见微
》
售價:HK$
88.5
《
东欧史(全二册)-“中间地带”的困境
》
售價:HK$
221.8
《
虚拟资本:金融怎样挪用我们的未来
》
售價:HK$
77.3
《
刻意练习不生气
》
售價:HK$
39.2
《
大宋理财:青苗法与王安石的金融帝国(全彩插图本)
》
售價:HK$
109.8
《
安全感是内心长出的盔甲
》
售價:HK$
67.0
《
快人一步:系统性能提高之道
》
售價:HK$
110.9
|
編輯推薦: |
本书通过介绍目前最流行的三大前端框架及生态体系,带领读者全面掌握从移动互联应用开发到万物互联应用开发技术和实战技巧,本书也可以作为前端开发者搭建企业级前端产品体系的参考书。书中提供了大量的代码示例,读者可以通过这些例子理解知识点,也可以直接在开发实战中稍加修改应用这些代码。另外,提供书中所有案例所涉及的源代码,以便于读者高效的学习。
|
內容簡介: |
随着移动互联时代到万物互联超级终端时代的变化,开发者也从移动互联开发转型到万物互联时代的超级终端开发,本书全面讲解大前端时代的核心技术栈和核心开发语言,并通过一本书融汇贯通,本书是普通前端开发者通向大前端架构师的桥梁,本书中涉及大量案例和企业一线实践操作经验,是前端开发者转型为大前端架构师的必备书籍。
本书共4篇15个章。第一篇为基础篇(第1~6章),主要介绍大前端的发展趋势,大前端的基础开发语言(ES6、TypeScript、Dart),大前端构建工具和前端工程化体系,以及大前端的包管理和如何搭建一个企业级的脚手架工具。从第二篇至第四篇(第7~15章),分别介绍Vue 3、React和Flutter 2三大主流框架,帮助开发者学习和掌握最新的框架用法和生态体系。
学习本书内容,需要具备一定的HTML、CSS、JS基础知识,本书可以作为前端开发者提升技能的工具书也可以作为普通开发者从网页开发过渡到万物互联开发的书籍。
|
關於作者: |
徐礼文,北京理工大学信息技术创新学院老师、华为HDE、华为首届HarmonyOS开发者创新大赛导师、开放原子开源基金会开源导师。曾担任资深软件开发工程师、系统架构师、技术总监等职务,从事软件研究和开发15年。主要从事跨平台技术、人工智能、区块链,以及数字化架构方向的研究和技术指导工作,对国内外相关领域的技术、理论和实践有很深的理解和研究。
|
目錄:
|
第1篇基础篇
第1章大前端发展趋势
1.1大前端的发展过程
1.2Node.js引领JavaScript进入全栈时代
1.3小程序、轻应用开启前端新模式
1.4Flutter引领跨平台开发
1.5华为ArkUI探索物联网全场景开发
1.6大前端的革命与未来
第2章ECMAScript 6
2.1ECMAScript 6介绍
2.2Babel转码器
2.3let和const
2.4解构赋值
2.5字符串的扩展
2.5.1字符串新增方法
2.5.2字符串模板
2.6数组的扩展
2.6.1扩展运算符
2.6.2Array.from()
2.6.3Array.of()
2.6.4Array.find() 和 Array.findIndex()
2.6.5Array.includes()
2.6.6Array.copyWithin()
2.6.7Array.entries().keys().values()
2.6.8Array.fill()
2.6.9flat()、flatMap()
2.7对象的扩展
2.7.1对象字面量
2.7.2属性名表达式
2.7.3super关键字
2.7.4对象的扩展运算符
2.8Symbol
2.9Set和Map数据结构
2.9.1Map对象
2.9.2Set 对象
2.10Proxy
2.11Reflect
2.11.1Reflect()静态方法
2.11.2Reflect与Proxy组合使用
2.12异步编程
2.12.1Promise
2.12.2Generator
2.12.3async/await
2.13类的用法
2.13.1类的定义
2.13.2类的构造函数与实例
2.13.3类的属性和方法
2.13.4类的继承
2.14模块化Module
2.14.1ECMAScript 6的模块化特点
2.14.2模块化开发的优缺点
2.14.3模块的定义
2.14.4模块的导出
2.14.5模块的导入
第3章前端构建工具
3.1前端构建工具介绍
3.1.1为什么需要构建工具
3.1.2构建工具的功能需求
3.1.3前端构建工具演变
3.1.4NPM与Yarn、PNPM
3.2Webpack
3.2.1Webpack介绍
3.2.2Webpack安装与配置
3.2.3Webpack基础
3.2.4Webpack进阶
3.3Rollup
3.3.1Rollup介绍
3.3.2Rollup安装与配置
3.3.3Rollup基础
3.4ESBuild
3.5Vite
3.5.1Vite介绍
3.5.2Vite基本使用
3.5.3Vite原理
第4章TypeScript
4.1TypeScript介绍
4.2TypeScript安装与配置
4.3TypeScript基础数据类型
4.4TypeScript高级数据类型
4.4.1泛型
4.4.2交叉类型
4.4.3联合类型
4.5TypeScript面向对象特性
4.5.1类
4.5.2接口
4.6TypeScript装饰器
4.6.1属性装饰器
4.6.2方法装饰器
4.6.3参数装饰器
4.6.4类装饰器
4.7TypeScript模块与命名空间
4.7.1模块
4.7.2命名空间
第5章Dart语言
5.1Dart语言介绍
5.2安装与配置
5.3第1个Dart程序
5.4变量与常量
5.5内置类型
5.6函数
5.7运算符
5.8分支与循环
5.9异常处理
5.10面向对象编程
5.10.1类与对象
5.10.2类的继承
5.10.3抽象类
5.10.4多态
5.10.5隐式接口
5.10.6扩展类
5.11泛型
5.12异步支持
5.12.1Future对象
5.12.2async函数与await表达式
5.13库和库包
5.13.1库
5.13.2自定义库包
5.13.3系统库
5.13.4第三方库
第6章包管理与脚手架
6.1MonoRepo包管理
6.1.1单仓与多仓库管理
6.1.2Lerna包管理工具介绍
6.1.3Lerna包组织结构
6.1.4Lerna安装与配置
6.1.5Lerna操作流程演示
6.1.6Yarn Workspace
6.1.7Yarn Workspace与Lerna
6.2设计一个企业级脚手架工具
6.2.1脚手架作用
6.2.2常见的脚手架工具
6.2.3脚手架思路
6.2.4第三方依赖介绍
6.2.5脚手架架构图
6.2.6创建脚手架工程与测试发布
6.2.7脚手架命令行开发
第2篇Vue 3框架篇
第7章Vue 3语法基础
7.1Vue 3框架介绍
7.1.1Vue 3框架核心思想
7.1.2Vue 3框架的新特征
7.2Vue 3开发环境搭建
7.2.1Visual Code安装与配置
7.2.2安装Vue DevTools
7.2.3编写第1个Vue 3程序
7.3Vue 3项目搭建方法
7.3.1手动搭建Vue 3项目
7.3.2通过脚手架工具搭建Vue 3项目
7.3.3Vue 3项目目录结构
7.4Vue 3应用创建
7.4.1createApp()方法
7.4.2数据属性和方法
7.4.3计算属性和监听器
7.4.4模板和render()函数
7.5Vue 3模板语法
7.5.1插值表达式
7.5.2什么是指令
7.5.3数据绑定指令
7.5.4class与style绑定
7.5.5条件指令
7.5.6循环指令
7.5.7事件绑定指令
7.5.8表单绑定指令
7.5.9案例: 省市区多级联动效果
7.6Vue 3组件开发
7.6.1组件定义
7.6.2组件的命名规则
7.6.3组件的结构
7.6.4组件的接口属性
7.6.5组件的生命周期方法
7.6.6组件的插槽
7.6.7提供/注入模式
7.6.8动态组件与异步组件
7.6.9混入
7.7响应性API
7.7.1setup()
7.7.2ref()
7.7.3reactive()
7.7.4toRef
7.7.5toRefs()
7.7.6computed()
7.7.7watch()
7.7.8watchEffect
7.7.9setup()生命周期函数
7.7.10单页面组件
7.7.11Provide与Inject
7.8Vue 3过渡和动画
7.8.1过渡与动画
7.8.2Transition和TransitionGroup组件
7.8.3进入过渡与离开过渡
7.8.4案例: 飞到购物车动画
7.9Vue 3复用与组合
7.9.1自定义指令
7.9.2Teleport
7.9.3插件
7.10Vue 3路由
7.10.1路由入门
7.10.2路由参数传递
7.10.3嵌套模式路由
7.10.4命名视图
7.10.5路由守卫
7.10.6数据获取
7.11Vue 3状态管理(Vuex)
7.11.1状态管理模式
7.11.2Vuex和全局变量的概念区别
7.11.3Vuex中的5个重要属性
7.11.4Vuex开发入门基础
7.11.5Vuex开发实践
7.11.6Vuex中组合式API的用法
7.12Vue 3状态管理(Pinia)
7.12.1Pinia与Vuex写法比较
7.12.2Pinia安装和集成
7.12.3Pinia核心概念
第8章Vue 3进阶原理
8.1Vue 3源码安装编译与调试
8.1.1Vue 3源码包介绍
8.1.2Vue 3源码下载与编译
8.2Vue 3响应式数据系统核心原理
8.2.1reactivity模块介绍
8.2.2reactivity模块使用
8.2.3reactive实现原理
8.2.4依赖收集与派发更新
8.2.5Vue 3响应式原理总结
8.3Vue 2 Diff算法(双端Diff算法)
8.3.1双端Diff算法原理
8.3.2非理性状态的处理方式
8.4Vue 3 Diff算法(快速Diff算法)
第9章Vue 3组件库开发实战
9.1如何设计一个组件库
9.1.1组件库设计方法论
9.1.2组件库的设计原则
9.1.3组件库开发的技术选型
9.1.4组件框架样式主题设计
9.2搭建组件库项目
9.2.1搭建MonoRepo项目结构
9.2.2搭建基础组件库(packages/vueui3)
9.2.3搭建主题样式项目
9.3组件库详细设计
9.3.1Icon图标组件
9.3.2Button组件
9.4搭建Playgrounds项目
9.4.1创建Playgrounds项目
9.4.2测试Playgrounds项目
9.5组件库发布与集成
9.5.1添加publishConfig配置
9.5.2设置发布包的文件或者目录
9.5.3提交代码到Git仓库
9.5.4使用Commitizen规范的commit message
9.5.5使用Lint Husky规范的commit message
9.5.6使用Lerna生成changelogs
9.5.7将库发布到npmjs网站
第3篇React框架篇
第10章React语法基础
10.1框架介绍
10.1.1React框架由来
10.1.2React框架特点
10.2开发准备
10.2.1手动搭建React项目
10.2.2通过脚手架工具搭建React项目
10.2.3安装React调试工具
10.3JSX与虚拟DOM
10.3.1JSX语法介绍
10.3.2React.createElement和虚拟DOM
10.3.3事件处理
10.3.4条件渲染
10.3.5列表与Key
10.4元素渲染
10.4.1客户端渲染
10.4.2服务器端渲染
10.5组件
10.5.1React元素与组件的区别
10.5.2创建组件
10.5.3组件的输入接口
10.5.4组件的状态
10.5.5组件中函数处理
10.5.6组件的生命周期
10.5.7组件的引用
10.6组件设计与优化
10.6.1高阶组件
10.6.2Context模式
10.6.3Component 与PureComponent
10.6.4React.memo
10.6.5组件懒加载
10.6.6Portals
10.7React Hook
10.7.1React Hook介绍
10.7.2useState()
10.7.3useEffect()
10.7.4useLayoutEffect()
10.7.5useRef()
10.7.6useCallback()与useMemo()
10.7.7useContext()
10.7.8useReducer()
10.7.9自定义Hook
10.8路由(React Router)
10.8.1安装React Router
10.8.2两种模式的路由
10.8.3简单路由
10.8.4嵌套模式路由
10.8.5路由参数
10.8.6编程式路由导航
10.8.7多个Routes/
10.9状态管理(Redux)
10.9.1Redux介绍
10.9.2Redux基本用法
10.9.3Redux核心对象
10.9.4Redux中间件介绍
10.9.5Redux中间件(reduxthunk)
10.9.6Redux中间件(reduxsaga)
10.9.7Redux Toolkit简化Redux代码
10.10状态管理(Recoil)
10.10.1Recoil介绍
10.10.2Recoil核心概念
10.10.3Recoil核心API
10.11React移动端开发(React Native)
10.11.1React Native优点
10.11.2React Native安装与配置
第11章React进阶原理
11.1React源码调试
11.1.1React源码下载与编译
11.1.2React源码包介绍
11.2React架构原理
11.2.1React 15版架构
11.2.2React 16版架构
11.2.3React Scheduler实现
第12章React组件库开发实战
12.1React组件库设计准备
12.1.1组件库设计基本目标
12.1.2组件库技术选型
12.2搭建React组件库(MonoRepo)
12.2.1初始化Lerna项目
12.2.2创建React组件库(Package)
12.2.3创建一个Button组件
12.2.4使用Rollup进行组件库打包
12.3创建Playgrounds
12.4通过Jest搭建组件库测试
12.4.1安装配置测试框架
12.4.2编写组件测试代码
12.4.3启动单元测试
12.5使用Storybook搭建组件文档
12.6将组件库发布到NPM
第4篇Flutter 2框架篇
第13章Flutter语法基础
13.1Flutter介绍
13.2开发环境搭建
13.2.1Windows安装配置Flutter SDK
13.2.2macOS安装配置Flutter SDK
13.2.3配置VS Code开发Flutter
13.3第1个Flutter应用
13.3.1创建Flutter App项目
13.3.2编写Flutter App界面
13.3.3添加交互逻辑
13.4组件
13.5包管理
13.5.1pubspec.yaml文件
13.5.2通过pub仓库管理包
13.5.3以其他方式管理包
13.6资源管理
13.6.1图片资源管理
13.6.2多像素密度的图片管理
13.6.3字体资源的声明
13.6.4原生平台的资源设置
13.7组件设计风格
13.7.1Material(Android)风格组件
13.7.2Cupertino(iOS)风格组件
13.8尺寸单位与适配
13.9基础组件
13.9.1基础组件介绍
13.9.2构建布局
13.9.3列表与可滚动组件
13.9.4表单组件
13.10路由管理
13.10.1路由的基础用法
13.10.2路由传值
13.10.3命名路由
13.10.4路由拦截
13.10.5嵌套模式路由
13.11事件处理与通知
13.11.1原始指针事件
13.11.2手势识别
13.11.3全局事件总线
13.11.4事件通知
13.12网络
13.12.1HttpClient
13.12.2HTTP库
13.12.3Dio库
13.12.4WebSocket
13.12.5Isolate
13.13状态管理
13.13.1InheritedWidget
13.13.2scoped_model
13.14Stream与BLoC模式
13.14.1Stream
13.14.2RxDart
13.14.3BLoC模式
第14章Flutter Web和桌面应用
14.1Flutter Web介绍
14.1.1Flutter Web框架架构
14.1.2Flutter Web的两种编译器
14.1.3Flutter Web支持的两种渲染模式
14.1.4创建一个Flutter Web项目
14.2Flutter Desktop介绍
14.3Flutter Desktop开发案例
第15章Flutter插件库开发实战
15.1Flutter插件库开发介绍
15.2Flutter自定义组件库的3种方式
15.3Flutter自定义插件(Plugin)
15.4在Pub上发布自己的Package
|
內容試閱:
|
随着Web技术的迅猛发展,以Electron、ReactNative、ArkUI等为代表的新的混合式开发模式日趋成为与Qt、Android、iOS原生开发并肩的开发模式之一。随着WebVR、WebAR、WebAssembly等一系列技术的日趋成熟,原本前端之间的隔阂会逐渐消失,逐步进入大前端开发的时代。
近几年,随着新硬件和新商业模式的兴起,传统的前端技术得到了新的应用和发展空间,特别是以HTML5和新一代JavaScript语言为代表的大前端技术正在渗透到技术的各个环节,这也对前端工程师提出了新的要求并带来了新的机遇。
HTML5和新一代JavaScript语言以其自身的广泛适配性和良好的运行效率已经不简单地只作为网页开发专用技术了,它们可以很好地和其他底层语言进行调用和连接,已经可以广泛适用于万物互联的场景应用开发。如华为公司在2021年推出了自己的下一代物联网操作系统(HarmonyOS)后,推出了自己的操作系统应用开发框架ArkUI,该框架就是基于JavaScript语言实现的一套跨终端的应用开发框架,它通过前端的JavaScript语言与底层的C 语言进行相互高效调用,实现了一套代码多端运行的目标。
2021年,全球第一社交平台Facebook正式更名为Meta,该名字源自Metaverse,中文翻译为元宇宙,意思是新型社会体系的数字生活空间。元宇宙是整合多种新技术产生的下一代三维化的互联网应用形态。它基于扩展现实技术和数字孪生技术实现从现实到虚拟的空间拓展; 借助人工智能和物联网实现虚拟人、自然人和机器人的融合共生; 借助区块链、Web 3.0、数字藏品/NFT等实现经济价值的增值。
这一新的模式必将带来重大的技术突破和新技术的创新,元宇宙时代的大前端开发将是一个突破传统前端局限而面向一体化的时代。
在新模式、新技术和新硬件的加持下,大前端未来可能进入下一个领域——元宇宙前端。可以看到目前WebVR、WebAR、WebGL等新的Web视觉和Web 3D技术正在兴起,未来必定成为前端的主流技术。
本书特色
本书通过介绍目前广为流行的三大前端框架及生态体系,带领读者全面掌握从移动互联应用开发到万物互联应用开发技术和实战技巧。本书共4篇15章,由浅入深,带领读者从学习移动互联开发(Vue、React)框架入手再到物联网开发(Flutter)框架开发。本书第1篇先从大前端主流开发语言(ECMAScript 6、TypeScript、Dart)讲起,在基础篇中全面介绍大前端打包构建流程及工程化体系。再从基础、原理和实战的三个纬度出发全面介绍Vue、React、Flutter三大框架的基础语法、实现原理、源码编译、核心算法及企业级组件库项目搭建。本书提供了大量的代码示例,读者可以通过这些例子理解知识点,也可以直接在开发实战中稍加修改而应用这些代码。另外,提供了书中所有案例所涉及的源码,以便于读者高效地学习。
本书内容
本书4篇15章的主要内容如下:
第1篇,开发基础篇(第1~6章)。第1章介绍大前端的发展过程和发展趋势; 第2章介绍ECMAScript 6语法及用法; 第3章介绍前端构建工具,详细介绍Webpack、Rollup、ESBuild和Vite的原理及使用; 第4章介绍TypeScript的语法及用法; 第5章介绍Dart的语法及用法; 第6章介绍MonoRepo管理模式及如何设计一个企业级脚手架工具。
第2篇,Vue 3框架篇(第7~9章)。第7章全面介绍Vue 3框架语法和使用; 第8章介绍Vue 3框架原理、Vue 3源码下载和编译、Vue 3的双向数据绑定和Vue 3 Diff算法原理; 第9章介绍如何构建一个基于Vue 3的组件库。
第3篇,React框架篇(第10~12章)。第10章介绍React框架语法和使用; 第11章介绍React框架原理、React源码下载和源码测试; 第12章介绍如何构建一个基于React的组件库。
第4篇,Flutter 2框架篇(第13~15章)。第13章介绍Flutter 2的语法和使用; 第14章介绍Flutter Web和桌面应用开发; 第15章介绍Flutter插件库开发与发布。
本书读者对象
学习本书内容需要具备一定的HTML、CSS、JS基础知识,本书可以作为前端开发者提升技能的工具书,也可以作为前端开发者搭建企业级前端产品体系的参考书,还可以作为普通开发者从网页开发过渡到万物互联开发的参考书。恳请读者批评指正。
致谢
感谢清华大学出版社赵佳霓编辑在写作本书过程中提出的宝贵意见,以及我的家人在写作过程中提供的支持与帮助。
徐礼文2022年8月
本书源码下载
|
|