猜你喜欢
Vue.js 3+TypeScript完全指南

Vue.js 3+TypeScript完全指南

书籍作者:王红元 ISBN:9787121462764
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:5669
创建日期:2024-05-02 发布日期:2024-05-02
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
下载地址
内容简介

本书是一本全面、深入介绍Vue.js 3和TypeScript前端开发技术的图书。本书详细介绍了Vue.js 3的新特性与优势,包括模板语法、内置指令、Options API、组件化、过渡动画、Composition API、Vue Router、Vuex 等核心知识点;TypeScript 的基础和进阶知识,包括数据类型、类型别名、联合类型、类型断言、函数类型、类、接口、泛型、类型声明等内容。此外,本书还深入探讨了前端工程化、第三方库的集成与使用、企业级管理后台的实现和自动化部署等内容,以及如何从零开始实现一个Mini-Vue.js 3框架,以便读者深入理解Vue.js 3的核心原理。

本书既适合有一定基础的前端开发工程师、Web 开发者阅读,也适合作为初学者学习 Vue.js 3 和TypeScript的入门教材。本书旨在帮助读者全面理解Vue.js 3和TypeScript的使用方法和原理,掌握实用的知识和技能,提高前端开发水平。


作者简介

王红元(网名coderwhy),担任广州市弘源科教软件有限公司CEO、澳大利亚The WAIN公司CTO,作为腾讯AI高校训练营的特聘讲师,曾为多所双一流高校授课。

在国内外大型项目和软件系统中,负责架构设计和研发工作,曾兼任多家公司的技术顾问,协助解决开发过程中的关键问题。

精通多种编程语言,包括C/C++、Python、Java、Objective-C、Swift、JavaScript和TypeScript等,对即时聊天和流媒体技术有深入研究。

目前致力于不断提高自身技能,为企业、开源社区及学员做出更多贡献。

刘军,曾在深圳市华云中盛科技股份有限公司担任前端负责人,广州市弘源科教软件有限公司联合创始人之一,拥有8年前端开发经验。精通Vue.js、React、TypeScript、webpack、Vite、Node、Docker、CI/CD,以及Java、Android等技术栈,擅长微前端、中后台、组件库、脚手架、公众号、小程序、大屏可视化等领域的工作。


编辑推荐

(1)资深前端技术大佬coderwhy经验分享。

(2)适读人群广泛,初学、进阶需求均可满足。

(3)内容循序渐进,全面掌握Vue.js 3相关技能。

(4)深入剖析原理,理解Vue.js 3的内部机制。

(5)实战案例丰富,涵盖大量真实的开发场景。

(6)多种实用工具,提高开发效率和代码质量。

(7)附带资源多样,源码、付费视频和读者群。


《Vue.js 3+TypeScript完全指南》电子书免费下载

pdf下载 txt下载 epub下载 mobi下载 azw3下载

前言

写作背景

Vue.js诞生于2014年,是由Evan You开源的轻量级前端框架。相比于React和Angular框架,Vue.js显得更加轻量级、简单,更容易理解和上手。Vue.js的简单易用和高效性使其成为开发者首选的框架之一。目前,Vue.js在GitHub上已经有超过20万个Star,足以说明其受欢迎程度。

2016年10月,Evan You发布Vue.js 2.0版本。2020年9月,Evan You对Vue.js 2进行重构,并发布Vue.js 3版本。Vue.js 3具有非常多的新特性,其中最重要的变化是使用TypeScript进行重构。这使得Vue.js 3更加易于开发和维护,也更加符合现代开发规范。此外,Vue.js 3还引入了Proxy进行数据劫持和Composition API等,这些新特性可以使开发者更加轻松地编写高质量的代码。

随着企业对Vue.js 3 + TypeScript的需求不断增加,越来越多的企业开始使用这种技术开发Web应用程序。例如,Element Plus、Ant Design Vue和Vant等都已经全面支持Vue.js 3 + TypeScript开发。这说明Vue.js 3 + TypeScript已经成为现代Web开发的核心技术之一。

然而,目前市场上还没有一本全面、系统介绍Vue.js 3 + TypeScript的入门教材,这使很多初学者感到困难重重。因此,本书的写作初衷是为读者提供系统级的学习体验,旨在帮助读者全面掌握Vue.js 3和TypeScript的使用和原理,提高前端开发水平。

学习建议

本书是一本全面、深入介绍Vue.js 3和TypeScript前端开发技术的图书,重点介绍Vue.js 3和TypeScript的核心概念、技术原理和实战应用,以帮助读者成为一名优秀的前端开发工程师。

以下是为读者提供的一些学习建议。

(1)先学习基础知识:对于没有前端开发经验的读者,建议先学习一些基础知识,例如HTML、CSS和JavaScript。这些基础知识对学习Vue.js 3和TypeScript来说非常重要。

(2)系统性学习:本书是一本系统性学习指南,建议读者按照章节顺序学习,不要跳跃式阅读。在学习的过程中,建议一边阅读,一边动手实践,以便加深理解;建议多写学习笔记,方便后续复习和总结。

(3)动手练习:学习Vue.js 3和TypeScript最好的方法是动手练习。建议读者在阅读每个章节时,都亲自动手练习,切忌纸上谈兵,这样才能更好地理解概念。

(4)查看示例代码:书中的示例代码是非常有用的,有助于读者更好地理解概念和实现。在阅读每个章节时,请务必查看示例代码。完整的示例代码可以查看本书提供的源代码,下载方式见本书封底的“读者服务”。

(5)项目实战练习:学习Vue.js 3和TypeScript不仅是学习理论知识,而且需要通过实战项目的练习来加深理解。建议读者跟随书中内容,逐步动手实现本书提供的一个后台管理系统的项目,提升自己的编程能力。

(6)参考官方文档:Vue.js 3和TypeScript都有完整的官方文档,可以帮助我们更深入地了解其特性和用法。在阅读每个章节时,如果想要了解更多的信息,可以参考官方文档。

(7)观看配套视频:本书涉及的知识面非常广,如果阅读时对某些知识点有疑惑或难以理解,可以观看专为本书定制的视频教程。视频教程可以在本书读者群中获取,进群方式见封底的“读者服务”。

总之,学习Vue.js 3和TypeScript需要耐心、毅力、勤于实践,希望本书能成为各位读者学习Vue.js 3和TypeScript的有力工具和高效指南!

本书特色

(1)丰富的实战案例:本书涵盖多个实际开发场景,如书籍购物车、计数器、自定义Hooks实战、自定义指令、自定义插件、列表动画、柱状图、折线图、饼图、后台管理系统等。这些案例涉及Vue.js 3的各个方面,可以帮助读者在实践中掌握Vue.js 3的核心概念和技能。

(2)深入剖析原理:本书不仅介绍了Vue.js 3的使用方式和技巧,还深入剖析了其原理和实现方式。例如,methods中this的指向、虚拟DOM、diff算法、nextTick的原理,并实现了一个Mini-Vue.js 3框架,帮助读者深入理解Vue.js 3的内部机制。

(3)各种实用工具:本书介绍了多种实用工具,如VS Code常用的插件、snippet代码片段生成、Vue.js devtools、Vue CLI、create-app、ESLint、Prettier等。这些工具可以帮助读者提高开发效率和代码质量。

(4)适合不同层次读者:本书内容适合从初学者到高级前端开发工程师等各个层次的读者。无论是前端开发工程师、Web开发者、学生,还是从Vue.js 2转向Vue.js 3的读者,都可以从本书中获得实用的知识和技能。

(5)最新的技术栈:本书使用最新的技术栈,如 Vue.js 3、Element Plus、ECharts 5.x、TypeScript、axios、Vue Router、Vuex等,帮助读者了解最新的前端开发技术和趋势。

(6)知识点覆盖全面:本书囊括了Vue.js 3的模板语法、内置指令、Options API、组件化、过渡动画、Composition API、Vue Router、Vuex、TypeScript、前端工程化、常用的第三方库、项目实战、自动化部署,以及从零实现一个Mini-Vue.js 3框架等内容,帮助读者全面掌握Vue.js 3的相关知识和技能。

(7)封装与架构思想:本书介绍了项目中的各种组件封装技巧、axios请求库的封装、Vue Router 的封装、Vuex 的封装,以及后台管理系统架构等。这些内容可以帮助读者学习封装和架构思想,提高代码的可维护性和可扩展性。

(8)自动化部署(CI/CD):本书介绍了DevOps开发模式、购买服务器、手动部署、自动化部署等内容。这些内容可以帮助读者了解自动化部署的流程和工具,提高项目的交付效率和质量。


目录

1 邂逅和初体验Vue.js 1

1.1 认识Vue.js

1.2 Vue.js与其他框架的对比

1.3 Vue.js 2的缺点

1.4 Vue.js 3带来的新变化

1.5 搭建开发环境

1.6 Vue.js 3的安装和使用

1.7 计数器案例

1.8 createApp的对象参数

1.9 VS Code生成代码片段

2 模板语法和内置指令 28

2.1 插值语法

2.2 基本指令

2.3 v-bind

2.4 v-on

2.5 条件渲染

2.5.4 v-show和v-if的区别

2.6 列表渲染

2.6.4 数组的更新检测

2.7 key和diff算法

3 Vue.js 3的Options API 65

3.1 计算属性

3.2 监听器watch

3.3 案例:书籍购物车

4 v-model和表单输入 89

4.1 基本使用

4.2 实现原理

4.3 绑定其他表单

4.4 v-model值的绑定

4.5 修饰符

4.5.1 .lazy修饰符

4.5.2 .number修饰符

4.5.3 .trim修饰符

4.6 v-model在组件上的使用

5 Vue.js 3组件化开发 97

5.1 认识组件化

5.2 Vue.js 3的组件化

5.3 注册组件

5.4 Vue.js 3开发模式

5.5 Vue.js 3支持SFC

6 前端工程化 107

6.1 前端快速发展史

6.2 认识webpack

6.3 Vue CLI脚手架

6.4 认识Vite

6.5 create-vue 脚手架

6.6 webpack和Vite的区别

7 Vue.js 3组件化基础详解 128

7.1 组件的嵌套

7.1.1 搭建基本页面

7.1.2 组件的拆分和嵌套

7.1.3 组件CSS的作用域

7.1.4 组件之间的通信

7.2 组件样式的特性

7.2.1 Scoped CSS

7.2.2 CSS Modules

7.2.3 在CSS中使用v-bind

7.3 父子组件的相互通信

7.3.1 父组件传递数据给子组件

7.3.2 子组件传递数据给父组件

7.3.3 案例:选项卡TabControl实战

7.4 非父子组件的相互通信

7.4.1 Provide/Inject依赖注入

7.4.2 全局事件总线

7.5 组件中的插槽

7.6 组件的作用域插槽

7.6.1 认识渲染作用域

7.6.2 作用域插槽

7.6.3 独占默认插槽

8 Vue.js 3组件化进阶详解 173

8.1 动态组件

8.1.1 v-if指令的实现

8.1.2 动态组件的实现

8.1.3 动态组件的传参

8.1.4 keep-alive的使用

8.2 异步组件

8.2.1 webpack对代码分包

8.2.2 在Vue.js 3中实现异步组件

8.2.3 异步组件和Suspense

8.3 获取元素或组件的实例

8.3.1 $refs

8.3.2 $parent

8.4 组件生命周期函数

8.5 在组件中使用v-model指令

8.5.1 v-model的基本使用方法

8.5.2 v-model绑定computed

8.5.3 组件上应用多个v-model

8.5.4 v-model绑定对象类型

9 Vue.js 3实现过渡动画 201

9.1 基本过渡动画

9.1.1 认识过渡动画

9.1.2 过渡动画特有的类

9.1.3 CSS的Animation动画

9.1.4 Transition组件的常见属性

9.2 第三方库动画库

9.2.1 Animate.css动画库

9.2.2 GSAP动画库

9.3 列表中的过渡动画

9.3.1 TransitionGroup的基本使用

9.3.2 列表元素的过渡动画

9.3.3 案例:列表元素的交替过渡

10 Vue.js 3 Composition API详解 224

10.1 Options API代码的复用

10.1.1 Mixin混入

10.1.2 extends继承

10.2 认识Composition API

10.3 setup函数的基本使用

10.3.1 参数

10.3.2 返回值

10.3.3 this

10.4 数据响应式API

10.4.1 reactive

10.4.2 ref

10.5 响应式工具reactive

10.6 响应式工具ref

10.7 computed计算属性

10.7.1 基本使用

10.7.2 get和set方法

10.8 watchEffect监听

10.8.1 基本使用

10.8.2 停止听

10.8.3 清除副作用

10.8.4 执行时机

10.9 watch监听

10.9.1 监听单个数据源

10.9.2 监听多个数据源

10.9.3 监听响应式对象

10.10 组件生命周期函数

10.11 Provide/Inject依赖注入

10.11.1 提供数据

10.11.2 注入数据

10.11.3 提供和注入响应式数据

10.12 案例:Composition API的实战

10.12.1 计数器的两种实现方式

10.12.2 代码逻辑的封装和复用

10.12.3 修改网页的标题

10.12.4 监听页面滚动位置

10.13

10.13.1 基本使用

10.13.2 defineProps和defineEmits

10.13.3 defineExpose

10.13.4 useSlots和useAttrs

11 Vue.js 3组件化高级详解 276

11.1 render函数

11.2 自定义指令 283

11.2.1 基本使用

11.2.2 生命周期函数

11.2.3 参数和修饰符

11.2.4 案例:自定义时间格式化指令

11.3 teleport内置组件

11.3.1 认识teleport

11.3.2 基本使用

11.3.3 teleport中嵌套组件

11.3.4 多个teleport组件的使用

11.4 Vue.js 3的插件开发

11.5 nextTick函数的原理

12 Vue Router路由 299

12.1 认识Vue Router

12.2 基本使用

12.3 进阶知识

12.3.1 动态路由的匹配

12.3.2 嵌套路由的使用

12.3.3 编程式导航的使用

12.3.4 路由内置组件的插槽

12.3.5 动态添加路由

12.3.6 路由守卫

13 Vuex状态管理 327

13.1 认识Vuex状态管理

13.2 Vuex的核心概念

13.2.1 state

13.2.2 getters

13.2.3 mutations

13.2.4 actions

13.2.5 modules

14 TypeScript的基础详解 362

14.1 认识JavaScript

14.2 认识TypeScript

14.3 搭建TypeScript的运行环境

14.3.1编译环境

14.3.2运行环境

14.4 声明变量

14.4.1 格式

14.4.2 关键字

14.4.3 变量的类型推导

14.5 JavaScript的数据类型

14.5.1 number

14.5.2 boolean

14.5.3 string

14.5.4 array

14.5.5 object

14.5.6 null和undefined

14.5.7 symbol

14.6 TypeScript的数据类型

14.6.1 any

14.6.2 unknown

14.6.3 void

14.6.4 neve

14.6.5 tuple

14.7 TypeScript类型的补充

14.7.1 函数的参数和返回值

14.7.2 对象类型

14.7.3 联合类型

14.7.4 类型别名

14.7.5 类型断言

14.7.6 字面量类型

14.7.7 类型缩小

14.8 TypeScript函数类型详解

14.8.1 函数的类型

14.8.2 函数参数的类型

14.8.3 this的类型

14.8.4 函数重载

15 TypeScript的进阶详解 388

15.1 TypeScript类

15.1.1 类的定义

15.1.2 类的继承

15.1.3 类的多态

15.1.4 成员修饰符

15.1.5 只读属性

15.1.6 getter/setter

15.1.7 静态成员

15.1.8 抽象类

15.1.9 类作为数据类型使用

15.2 TypeScript接口的使用

15.2.1 接口的声明

15.2.2 索引类型

15.2.3 函数类型

15.2.4 接口的继承

15.2.5 交叉类型

15.2.6 接口的实现

15.2.7 interface和type的区别

15.2.8 字面量赋值

15.3 TypeScript枚举类型

15.4 TypeScript泛型

15.4.1 认识泛型

15.4.2 泛型接口

15.4.3 泛型类

15.4.4 泛型约束

15.5 模块和命名空间

15.5.1 模块化开发

15.5.2 命名空间

15.6 类型的声明

15.7 tsconfig.json文件解析

16 第三方库的集成与使用 414

16.1 Vue CLI新建项目

16.2 Vue Router的集成

16.3 Vuex的集成

16.4 Element Plus的集成

16.4.1 介绍和安装

16.4.2 全局引入

16.4.3 按需引入

16.4.4 手动引入

16.5 axios的集成和使用

16.5.1 介绍和安装

16.5.2 GET请求

16.5.3 POST请求

16.5.4 配置选项

16.5.5 并发请求

16.5.6 拦截器

16.5.7 实例

16.5.8 axios + TypeScript的封装

16.6 ECharts的集成和使用

16.6.1 认识前端可视化

16.6.2 ECharts介绍

16.6.3 基本使用

16.6.4 渲染引擎

16.6.5 配置选项

16.6.6 BaseEchart组件的封装

16.6.7 绘制饼图

16.6.8 绘制折线图

17 后台管理系统 443

17.1 Vue.js 3 + TypeScript项目介绍

17.2 Vue CLI新建项目

17.3 项目开发规范

17.3.1 统一IDE编码格式

17.3.2 Prettier格式化代码

17.3.3 ESLint 检测代码

17.3.4 项目编码规范

17.4 快速集成第三方库

17.4.1 vue.config.js的配置

17.4.2 Vue-Router的集成

17.4.3 Vuex的集成

17.4.4 Element Plus的按需导入

17.4.5 axios的集成与封装

17.4.6 区分开发和生成环境

17.5 tsconfig.json文件的解析

17.6 vue文件的类型声明

17.7 defineComponent函数的作用

17.8 登录模块

17.8.1 搭建登录页面

17.8.2 登录表单的实现

17.8.3 表单规则的校验

17.8.4 登录逻辑的实现

17.8.5 网络请求的反向代理

17.8.6 登录后获取用户信息

17.9 首页模块

17.9.1 搭建首页的布局

17.9.2 封装菜单组件

17.9.3 封装头部栏组件

17.9.4 新建页面和配置路由

17.9.5 动态注册路由

17.9.6 封装面包屑组件

17.10 用户模块

17.10.1 高级检索功能

17.10.2 用户列表功能

17.11 路由守卫和国际化

17.11.1 添加路由守卫

17.11.2 Element Plus的国际化

18 自动化部署 513

18.1 DevOps开发模式

18.2 购买云服务器

18.3 连接远程云服务器

18.4 Nginx安装和配置

18.5 Nginx手动部署Vue.js 3项目

18.6 Jenkins安装和配置

18.7 项目自动化部署

18.7.1 新建任务

18.7.2 源码管理

18.7.3 构建触发器

18.7.4 构建环境

18.7.5 构建脚本

18.7.6 立即构建

18.7.7 构建结果

19 手写Mini-Vue.js 3框架 532

19.1 Vue.js 3源码概述

19.1.1 认识虚拟DOM

19.1.2 Vue.js 3源码的三大核心模块

19.2 Mini-Vue.js 3框架的实现

19.2.1 渲染系统的实现

19.2.2 响应式系统的实现

19.2.3 应用程序入口模块


产品特色