YL10402 9787302484929 9787121324758
Vue.js实战
定价 79.00
出版社 清华大学出版社
版次 1
出版时间 2017年01月
开本 16开
作者 梁灏
装帧 平装
页数 330
字数 550000
ISBN编码 9787302484929
本书以Vue.js 2为基础,以项目实战的方式来引导读者渐进式学习Vue.js。本书分为基础篇、进阶篇和实战篇三部分。基础篇主要是对 Vue.js 核心功能的介绍;进阶篇主要讲解前端工程化Vue.js的组件化、插件的使用;实战篇着重开发了两个完整的示例,所涉及的内容涵盖Vue.js绝大部分API。通过阅读本书,读者能够掌握Vue.js框架主要API的使用方法、自定义指令、组件开发、单文件组件、Render函数、使用webpack开发可复用的单页面富应用等。本书示例丰富、侧重实战,适用于刚接触或即将接触Vue.js的开发者,也适用于对Vue.js有过开发经验,但需要进一步提升的开发者。
第1篇 基础篇
第1章 初识Vue.js 3
1.1 Vue.js是什么 3
1.1.1 MVVM模式 3
1.1.2 Vue.js有什么不同 4
1.2 如何使用Vue.js 5
1.2.1 传统的前端开发模式 5
1.2.2 Vue.js的开发模式 5
第2章 数据绑定和第壹个Vue应用 8
2.1 Vue实例与数据绑定 9
2.1.1 实例与数据 9
2.1.2 生命周期 10
2.1.3 插值与表达式 11
2.1.4 过滤器 13
2.2 指令与事件 15
2.3 语法糖 18
第3章 计算属性 19
3.1 什么是计算属性 19
3.2 计算属性用法 20
3.3 计算属性缓存 23
第4章 vbind及class与style绑定 25
4.1 了解vbind指令 25
4.2 绑定class的几种方式 26
4.2.1 对象语法 26
4.2.2 数组语法 27
4.2.3 在组件上使用 29
4.3 绑定内联样式 30
第5章 内置指令 32
5.1 基本指令 32
5.1.1 vcloak 32
5.1.2 vonce 33
5.2 条件渲染指令 33
5.2.1 vif、velseif、velse 33
5.2.2 vshow 36
5.2.3 vif与vshow的选择 36
5.3 列表渲染指令vfor 37
5.3.1 基本用法 37
5.3.2 数组更新 41
5.3.3 过滤与排序 43
5.4 方法与事件 44
5.4.1 基本用法 44
5.4.2 修饰符 46
5.5 实战:利用计算属性、指令等知识开发购物车 47
第6章 表单与vmodel 55
6.1 基本用法 55
6.2 绑定值 61
6.3 修饰符 63
第7章 组件详解 65
7.1 组件与复用 65
7.1.1 为什么使用组件 65
7.1.2 组件用法 66
7.2 使用props传递数据 70
7.2.1 基本用法 70
7.2.2 单向数据流 72
7.2.3 数据验证 74
7.3 组件通信 75
7.3.1 自定义事件 75
7.3.2 使用vmodel 77
7.3.3 非父子组件通信 79
7.4 使用slot分发内容 83
7.4.1 什么是slot 83
7.4.2 作用域 84
7.4.3 slot用法 85
7.4.4 作用域插槽 87
7.4.5 访问slot 89
7.5 组件高ji用法 90
7.5.1 递归组件 90
7.5.2 内联模板 92
7.5.3 动态组件 93
7.5.4 异步组件 94
7.6 其他 95............
ES6标准入门(第3版)
ES6是下一代语言标准的统称,每年6月发布一次修订版,迄今为止已经发布了3个版本,分别是ES2015、ES2016、ES2017。《ES6标准入门(第3版)》根据ES2017标准,详尽介绍了所有新增的语法,对基本概念、设计目的和用法进行了清晰的讲解,给出了大量简单易懂的示例。《ES6标准入门(第3版)》为中级难度,适合那些已经对语言有一定了解的读者,可以作为学习这门语言全新进展的工具书,也可以作为参考手册供大家随时查阅新语法。 第3版增加了**过30%的内容,完全覆盖了ES2017标准,相比第2版介绍了更多的语法点,还调整了原有章节的文字表达,充实了示例,论述更准确,更易懂易学。
第1章 ECMAScript 6简介 11.1 ECMAScript和的关系 11.2 ES6与ECMAScript 2015的关系 11.3 语法提案的批准流程 21.4 ECMAScript的历史 31.5 部署进度 41.6 Babel 转码器 41.6.1 配置文件.babelrc 51.6.2 命令行转码babel-cli 61.6.3 babel-node 71.6.4 babel-register 81.6.5 babel-core 81.6.6 babel-polyfill 91.6.7 浏览器环境 101.6.8 在线转换 101.6.9 与其他工具的配合 111.7 Traceur转码器 111.7.1 直接插入网页 121.7.2 在线转换 131.7.3 命令行转换 141.7.4 Node环境的用法 15第2章 let和const命令 172.1 let 命令 172.1.1 基本用法 172.1.2 不存在变量提升 192.1.3 暂时性死区 192.1.4 不允许重复声明 212.2 块级作用域 222.2.1 为什么需要块级作用域 222.2.2 ES6的块级作用域 232.2.3 块级作用域与函数声明 242.2.4 do表达式 272.3 const命令 282.3.1 基本用法 282.3.2 本质 292.3.3 ES6声明变量的6种方法 302.4 顶层对象的属性 302.5 global对象 31第3章 变量的解构赋值 333.1 数组的解构赋值 333.1.1 基本用法 333.1.2 默认值 353.2 对象的解构赋值 373.3 字符串的解构赋值 413.4 数值和布尔值的解构赋值 413.5 函数参数的解构赋值 423.6 圆括号问题 433.6.1 不能使用圆括号的情况 433.6.2 可以使用圆括号的情况 443.7 用途 44第4章 字符串的扩展 494.1 字符的Unicode表示法 494.2 codePointAt() 504.3 String.fromCodePoint() 524.4 字符串的遍历器接口 524.5 at() 534.6 normalize() 534.7 includes()、startsWith()、endsWith() 544.8 repeat() 554.9 padStart()、padEnd() 564.10 模板字符串 574.11 实例:模板编译 604.12 标签模板 624.13 String.raw() 674.14 模板字符串的限制 68第5章 正则的扩展 715.1 RegExp构造函数 715.2 字符串的正则方法 725.3 u修饰符 725.4 y修饰符 745.5 sticky属性 775.6 flags属性 775.7 s修饰符:dotAll模式 785.8 后行断言 795.9 Unicode属性类 805.10 具名组匹配 815.10.1 简介 815.10.2 解构赋值和替换 825.10.3 引用 83第6章 数值的扩展 856.1 二进制和八进制表示法 856.2 Number.isFinite()、Number.isNaN() 866.3 Number.parseInt()、Number.parseFloat() 876.4 Number.isInteger() 886.5 Number.EPSILON 886.6 安全整数和Number.isSafeInteger() 896.7 Math对象的扩展 926.7.1 Math.trunc() 926.7.2 Math.sign() 926.7.3 Math.cbrt() 936.7.4 Math.clz32() 946.7.5 Math.imul() 956.7.6 Math.fround() 956.7.7 Math.hypot() 966.7.8 对数方法 966.7.9 双曲函数方法 986.8 Math.signbit() 986.9 指数运算符 996.10 Integer数据类型 996.10.1 简介 996.10.2 运算 100第7章 函数的扩展 1037.1 函数参数的默认值 1037.1.1 基本用法 1037.1.2 与解构赋值默认值结合使用 1057.1.3 参数默认值的位置 1077.1.4 函数的length属性 1087.1.5 作用域 1087.1.6 应用 1117.2 rest参数 1127.3 严格模式 1137.4 name属性 1157.5 箭头函数 1167.5.1 基本用法 1167.5.2 注意事项 1187.5.3 嵌套的箭头函数 1217.6 绑定this 1237.7 尾调用优化 1247.7.1 什么是尾调用 1247.7.2 尾调用优化 1257.7.3 尾递归 1267.7.4 递归函数的改写 1287.7.5 严格模式 1297.7.6 尾递归优化的实现 1297.8 函数参数的尾逗号 132第8章 数组的扩展 1338.1 扩展运算符 1338.1.1 含义 1338.1.2 替代数组的apply方法 1348.1.3 扩展运算符的应用 1368.2 Array.from() 1398.3 Array.of() 1428.4 数组实例的copyWithin() 1438.5 数组实例的find()和findIndex() 1448.6 数组实例的fill() 1458.7 数组实例的entries()、keys()和values() 1458.8 数组实例的includes() 1468.9 数组的空位 147第9章 对象的扩展 1519.1 属性的简洁表示法 1519.2 属性名表达式 1549.3 方法的name属性 1569.4 Object.is() 1579.5 Object.assign() 1589.5.1 基本用法 1589.5.2 注意点 1609.5.3 常见用途 1619.6 属性的可枚举性 1639.7 属性的遍历 1659.8 __proto__ 属性、Object.setPrototypeOf()、Object.getPrototypeOf() 1669.8.1 __proto__ 属性 1669.8.2 Object.setPrototypeOf() 1679.8.3 Object.getPrototypeOf() 1689.9 Object.keys()、Object.values()、Object.entries() 1699.9.1 Object.keys() 1699.9.2 Object.values() 1709.9.3 Object.entries 1719.10 对象的扩展运算符 1739.11 Object.getOwnPropertyDescriptors() 1779.12 Null传导运算符 181第10章 Symbol 18310.1 概述 18310.2 作为属性名的Symbol 18510.3 实例:消除魔术字符串 18810.4 属性名的遍历 18910.5 Symbol.for()、Symbol.keyFor() 19110.6 实例:模块的Singleton模式 19210.7 内置的Symbol值 19410.7.1 Symbol.hasInstance 19410.7.2 Symbol.isConcatSpreadable 19510.7.3 Symbol.species 19610.7.4 Symbol.match 19710.7.5 Symbol.replace 19710.7.6 Symbol.search 19810.7.7 Symbol.split 19810.7.8 Symbol.iterator 19910.7.9 Symbol.toPrimitive 20010.7.10 Symbol.toStringTag 20110.7.11 Symbol.unscopables 202..........
书名: 深入理解 JavaScript 核心概念与现代前端架构 书籍简介: 本书并非一本简单的技术堆砌指南,而是旨在带领读者踏上一场探索 JavaScript 语言精髓与现代前端开发模式的深度旅程。我们相信,真正的精通源于对底层原理的深刻理解,以及对架构设计思想的灵活运用。因此,本书将着重于剖析 JavaScript 核心机制,并在此基础上,系统地梳理和阐述当前主流的前端开发架构和设计模式,帮助开发者构建出更健壮、可维护、高性能的应用。 第一部分:JavaScript 语言深度解析 本部分将抛开浅尝辄止的语法介绍,深入到 JavaScript 的心脏地带,揭示其运行机制和核心概念。 执行上下文与作用域链: 详细讲解 JavaScript 代码是如何被解析和执行的,理解“执行上下文”的概念,包括全局执行上下文、函数执行上下文,以及它们如何形成“作用域链”。我们将探讨变量提升(hoisting)的本质,以及闭包(closure)是如何利用作用域链实现其强大功能的。通过大量的代码示例和图示,让读者彻底理解变量在不同作用域下的查找过程,以及闭包在数据封装、模块化等方面的实际应用。 原型链与继承: JavaScript 的继承机制与传统的类继承有所不同,其核心在于“原型链”。本章将详细阐述 JavaScript 的原型(prototype)和原型链(prototype chain)的工作原理。理解构造函数(constructor)、原型对象(prototype object)、实例对象(instance object)之间的关系,以及 `__proto__` 和 `prototype` 属性的用途。我们将深入探讨JavaScript的继承模式,包括原型链继承、构造函数继承、组合继承、寄生组合继承等,并分析它们各自的优缺点,引导读者选择最适合的继承策略。 异步编程模型: 随着 Web 应用的复杂化,异步编程变得尤为重要。本章将全面解读 JavaScript 的异步模型,从最初的回调函数(callback hell),到 Promise 的诞生,再到 async/await 语法的出现,展示了异步编程的演进过程。我们将深入分析事件循环(event loop)、宏任务(macrotask)和微任务(microtask)的执行机制,揭示 JavaScript 如何在单线程环境中处理高并发的异步操作。通过对 Promise 及其常用方法的详细讲解,以及 async/await 如何简化异步代码的书写,帮助读者写出更清晰、更易于管理的异步代码。 事件循环机制的底层原理: 深入剖析 JavaScript 引擎的事件循环(Event Loop)。我们将详细讲解调用栈(Call Stack)、任务队列(Task Queue,包括宏任务队列和微任务队列)以及它们之间的协作关系。理解 JavaScript 如何在浏览器环境(Web Workers 除外)中处理同步和异步任务的调度,包括 `setTimeout`、`setInterval`、Promise 的 `then`/`catch`、`process.nextTick`(Node.js 环境)等不同类型任务的加入和执行顺序。掌握事件循环对于理解 JavaScript 的非阻塞特性至关重要,能够帮助开发者诊断和解决因异步执行顺序问题导致的 bug。 this 的指向与绑定: `this` 是 JavaScript 中一个常被误解的概念。本章将系统地梳理 `this` 的指向规则,包括全局作用域中的 `this`、函数调用中的 `this`(默认绑定、隐式绑定、显式绑定)、构造函数中的 `this`,以及箭头函数中的 `this`。我们将详细讲解 `call`、`apply`、`bind` 方法如何实现 `this` 的显式绑定,并探讨在不同场景下 `this` 的实际行为,帮助读者避免常见的 `this` 指向错误。 模块化规范的演进与实践: 从 IIFE(立即执行函数表达式)的简单封装,到 CommonJS、AMD 的出现,再到 ES Modules 的标准化,JavaScript 的模块化发展历程深刻影响了前端工程化。本章将详细讲解不同模块化规范的原理、特点以及实际应用场景。重点解析 ES Modules 的静态化特性,以及 `import`/`export` 语法的使用,并讨论如何与打包工具(如 Webpack, Rollup)结合,实现高效的前端项目模块化管理。 第二部分:现代前端架构设计与实践 在扎实的 JavaScript 基础之上,本部分将引领读者进入现代前端架构的殿堂,探讨如何构建可扩展、高性能、易于维护的前端应用。 组件化设计思想: 组件化是现代前端开发的核心理念。本章将深入探讨组件化设计的优势,包括代码复用、提高开发效率、降低维护成本等。我们将从抽象的角度,讲解如何设计出灵活、可组合的组件,包括组件的 props(属性)、state(状态)、生命周期(lifecycle)等关键概念。无论您使用的是 React, Vue 还是 Angular,组件化设计思想都是通用的,本书将侧重于其背后的设计原则,而非特定框架的 API。 状态管理模式: 复杂的前端应用往往伴随着复杂的状态管理挑战。本章将系统地介绍几种主流的状态管理模式,从简单的 props 传递,到 Context API(React)或 provide/inject(Vue)的局部状态共享,再到 Redux, Vuex, Zustand 等集中式状态管理库的理念和实践。我们将分析不同状态管理方案的适用场景,讲解如何设计合理的状态树、如何管理状态的更新、如何处理异步状态等。 数据流的设计: 清晰、可控的数据流是构建健壮应用的关键。本章将探讨单向数据流(Unidirectional Data Flow)的设计理念,以及它如何帮助我们更好地理解和调试应用的状态变化。我们将分析不同状态管理库是如何实现单向数据流的,并讨论如何结合事件处理机制,构建出易于追踪和预测的数据流。 路由管理与导航: 现代单页应用(SPA)离不开路由管理。本章将深入讲解客户端路由的实现原理,包括如何利用 History API 或 Hash 模式进行 URL 的映射。我们将探讨如何设计合理的路由结构,如何处理路由参数、嵌套路由,以及如何在组件间进行导航。针对常见的路由场景,如懒加载、路由守卫等,我们将提供实用的解决方案。 性能优化策略: 前端性能直接影响用户体验。本章将从多个维度探讨前端性能优化,包括代码层面的优化(如节流、防抖、代码分割)、资源加载优化(如图片懒加载、CDN 使用、HTTP/2)、渲染性能优化(如虚拟滚动、DOM 操作优化)以及缓存策略等。我们将介绍常用的性能分析工具,并引导读者分析应用瓶颈,制定有效的优化方案。 测试驱动开发(TDD)与自动化测试: 编写可测试的代码是保证应用质量的基础。本章将介绍测试驱动开发(TDD)的理念和实践,以及不同类型的测试:单元测试(Unit Testing)、集成测试(Integration Testing)、端到端测试(End-to-End Testing)。我们将讲解如何使用 Jest, Mocha, Cypress 等流行的测试框架,编写高质量的测试用例,确保代码的正确性和稳定性。 构建工具与工程化: 现代前端开发离不开强大的构建工具。本章将介绍 Webpack, Rollup, Vite 等主流构建工具的核心概念和工作流程,包括模块打包、代码转换(Babel, TypeScript)、资源压缩、代码分割、热模块替换(HMR)等。我们将重点分析构建工具如何赋能前端项目的工程化,提升开发效率和最终的部署性能。 前后端分离与API设计: 深入探讨前后端分离的架构模式,理解其优势,并讲解如何进行有效的 API 设计。我们将讨论 RESTful API 的原则、GraphQL 的优势,以及如何设计出清晰、一致、易于扩展的接口。 目标读者: 本书适合有一定 JavaScript 基础,希望深入理解 JavaScript 语言特性,掌握现代前端开发架构和设计模式的开发者。无论是初级开发者希望夯实基础,还是有经验的开发者寻求技术突破,本书都将提供宝贵的知识和指导。 本书特色: 深度与广度并存: 既深入剖析 JavaScript 核心机制,又广泛涵盖现代前端开发的各个方面。 理论与实践结合: 理论讲解清晰易懂,配合大量代码示例和实际案例,帮助读者融会贯通。 强调设计思想: 侧重于传授通用的设计原则和架构思想,而非拘泥于特定框架的细节。 循序渐进,由浅入深: 从语言基础到架构设计,层层递进,引导读者建立完整的技术体系。 面向未来: 关注当前和未来的前端技术发展趋势,帮助读者保持技术的前瞻性。 通过本书的学习,您将能够更自信地驾驭 JavaScript,更从容地构建复杂的前端应用,并为应对不断变化的技术挑战做好准备。
这本书的封面设计我一直很喜欢,简单大气,给人一种专业的感觉。拿到手的时候,我特别仔细地翻阅了一下,纸张的质感很好,印刷清晰,字迹舒服,这一点对于长时间阅读来说真的太重要了。我本身从事前端开发已经有一段时间了,但 Vue.js 的很多高级技巧和最佳实践我还是想进一步巩固和学习,正好看到这款套装,价格也挺划算,就毫不犹豫入手了。尤其是 ES6 的部分,虽然平时工作中也在用,但总觉得基础不够扎实,很多新特性只是“会用”而没有深入理解其原理和应用场景,希望能通过这本书把这部分知识体系化。整体感觉包装得也很牢固,没有一点磕碰,物流速度也比预期的要快,这点很满意。收到书的那天,我刚好有空,就迫不及待地翻看了目录,内容编排 seemed well-structured,从基础的组件化开发到更复杂的路由、状态管理,再到一些性能优化和部署的实践,都涵盖了。我对 Vue.js 的实战部分尤其期待,希望能够通过书中的案例,学习到如何在实际项目中应用这些技术,解决一些常见的问题。