第1章 Web开发基础 1
1.1 Web开发基础 1
1.1.1 Web 1.0时代 1
1.1.2 Web 2.0时代 2
1.2 Web开发模式 2
1.2.1 MVC 2
1.2.2 MVP 3
1.2.3 MVVM 3
1.3 Vue简介 4
1.3.1 Vue的开发模式 4
1.3.2 Vue的安装 4
1.4 开发工具的使用 6
1.4.1 VS Code 6
1.4.2 Vue.js Devtools插件 8
1.5 第一个Vue程序 9
1.5.1 编写Vue程序 9
1.5.2 通过浏览器运行程序 10
习题与实践 11
第2章 Vue基础 13
2.1 Vue实例 13
2.1.1 创建Vue实例及挂载 13
2.1.2 Vue数据与方法 14
2.2 计算属性和侦听属性 16
2.2.1 计算属性 16
2.2.2 侦听属性 18
2.3 事件 20
2.3.1 事件监听及事件处理 20
2.3.2 事件修饰符 21
2.3.3 按键修饰符 24
2.4 Vue生命周期 25
2.4.1 生命周期钩子函数 27
2.4.2 生命周期钩子函数实例 27
习题与实践 29
第3章 Vue数据绑定 32
3.1 Vue模板语法 32
3.1.1 模板语法 32
3.1.2 v-text 34
3.1.3 v-html 35
3.2 v-bind 36
3.2.1 class属性绑定 37
3.2.2 style属性绑定 39
3.3 条件渲染 40
3.3.1 v-show 40
3.3.2 v-if 41
3.3.3 v-else 43
3.3.4 v-else-if 44
3.4 v-for 45
3.4.1 v-for 45
3.4.2 双重v-for 47
3.5 v-model 48
3.5.1 绑定文本框 48
3.5.2 绑定单选按钮 50
3.5.3 绑定复选框 50
3.5.4 绑定列表框 52
3.5.5 绑定修饰符 53
3.6 自定义指令 54
3.6.1 自定义指令构成 55
3.6.2 动态指令参数 57
3.7 购物车案例 59
3.7.1 案例说明 59
3.7.2 案例分析与实施 59
习题与实践 63
第4章 Vue组件 68
4.1 组件的定义与使用 68
4.1.1 注册全局组件 68
4.1.2 注册局部组件 69
4.1.3.vue文件 71
4.2 组件通信 71
4.2.1 父组件给子组件传递信息 71
4.2.2 子组件给父组件传递信息 73
4.3 插槽的使用 74
4.3.1 单个插槽 74
4.3.2 具名插槽 75
4.3.3 作用域插槽 77
4.4 简易留言板案例 78
4.4.1 案例说明 78
4.4.2 案例分析与实施 78
4.4.3 源代码 80
习题与实践 84
第5章 vue-router路由 87
5.1 前端路由 87
5.1.1 vue-router的引入 87
5.1.2 vue-router基础用法 88
5.1.3 路由重定向 91
5.2 动态路由 92
5.2.1 query方式传参 92
5.2.2 params方式传参 94
5.3 嵌套路由 96
5.3.1 嵌套路由基础 96
5.3.2 嵌套路由的实现 96
5.4 命名路由和命名视图 99
5.4.1 命名路由 99
5.4.2 命名视图 102
5.5 编程式导航 103
5.5.1 push()方法 103
5.5.2 replace()方法 106
5.5.3 go()方法 106
习题与实践 107
第6章 Vue项目构建 109
6.1 项目脚手架vue-cli 109
6.1.1 安装vue-cli 109
6.1.2 使用vue create创建项目 110
6.1.3 项目初始目录结构 112
6.2 Vant插件 114
6.2.1 安装Vant插件 114
6.2.2 引入组件 115
6.2.3 使用Vant组件 116
6.3 Axios 117
6.3.1 Axios基础 117
6.3.2 在Vue单文件中使用Axios 120
6.3.3 Axios在Vue项目中的使用 121
6.3.4 Axios封装及调用 123
习题与实践 125
第7章 组合式API 127
7.1 组合式API简介 127
7.1.1 组合式API的入口函数 127
7.1.2 ref与reactive函数 128
7.1.3 toRefs函数 130
7.2 computed、watch和watchEffect 131
7.2.1 computed函数 131
7.2.2 watch和watchEffect 133
7.3 provide和inject 136
7.3.1 provide/inject使用方式 136
7.3.2 provide/inject实例 136
7.4 组合式API生命周期 139
7.4.1 组合式API生命周期钩子函数 139
7.4.2 组合式API生命周期钩子函数示例 140
习题与实践 142
第8章 Vuex状态管理 144
8.1 Vuex概述 144
8.1.1 状态管理模式 144
8.1.2 Vuex数据状态管理 146
8.1.3 Vuex基本使用 148
8.2 Vuex中的配置选项 149
8.2.1 State 149
8.2.2 Getters 150
8.2.3 Mutations 151
8.2.4 Actions 153
8.2.5 Modules 154
习题与实践 156
第9章 综合案例开发1——万家水果APP 158
9.1 项目前期准备工作 158
9.1.1 项目创建及插件安装 160
9.1.2 准备数据 162
9.1.3 项目目录 163
9.2 公共组件的设计与制作 163
9.2.1 头部组件 164
9.2.2 轮播图组件 164
9.2.3 导航组件 166
9.3 main.js、app.vue及router/index.js项目文件 167
9.3.1 main.js 167
9.3.2 app.vue 168
9.3.3 router/index.js 169
9.4 首页组件(index.vue) 171
9.5 商品页组件(goods.vue) 173
9.5.1 商品页组件(goods.vue)结构代码 174
9.5.2 商品页组件(goods.vue)逻辑代码 175
9.6 购物车组件(cart.vue) 178
9.6.1 购物车组件(cart.vue)结构代码 179
9.6.2 购物车组件(cart.vue)逻辑代码 180
9.7 订单组件(order.vue) 183
9.7.1 订单组件(order.vue)结构代码 183
9.7.2 订单组件(order.vue)逻辑代码 184
9.8 我的组件(about.vue) 185
9.8.1 我的组件(about.vue)结构代码 186
9.8.2 我的组件(about.vue)逻辑代码 187
9.9 项目的打包与发布 189
第10章 综合案例开发2——个人博客 191
10.1 项目概述 191
10.1.1 前端环境搭建 194
10.1.2 后端环境搭建 194
10.2 MongoDB简述 195
10.2.1 MongoDB的安装 195
10.2.2 MongoDB基础操作 198
10.3 项目部分代码 200
10.3.1 main.js 200
10.3.2 router/index.js 201
10.3.3 app.vue 202
10.3.4 server/index.js 203
10.4 页面组件 205
10.4.1 添加博客组件(addBlog.vue) 205
10.4.2 分页显示博客(ListBlog.vue) 208
10.4.3 编辑博客(EditBlog.vue) 213
10.4.4 博客详情(SingleBlog.vue) 215
10.5 项目的打包与发布 216