第一章 课程介绍
vue框架对比
Vue和react对比
Vue
react
Vue和react相同点
项目整体架构
前置知识
HTML/css/js Vue ES6 node npm webpack
第二章 Vue基础
2-1 nodejs和npm的安装和环境搭建
2-2 vue环境搭建以及vue-cli使用
Vue多页面应用文件引用
npm install vue --save-dev,安装好后script标签可直接引用
vue-cli构建SPA应用
2-3 vue配置
2-5 vue基础语法
模板语法
class和style绑定
条件渲染
Vue事件处理器
Vue组件
第3章Vue-router
3-1路由基础介绍
路由是根据不同的url地址展示不同的内容或页面
前端路由就是把不同路由对应不同的内容或页面的任务交给前端来做,之前是通过服务端根据url的不同返回不同的页面实现的
在单页面应用,大部分页面结构不变,只改变部分内容时使用
优点:用户体验好,不需要每次都从服务器全部获取,快速展现给用户
缺点:不利于SEO;使用浏览器的前进,后退键的时候回重新发布请求,没有合理的利用缓存;单页面无法记住之前滚动的位置,无法再前进,后退的时候记住滚动的位置
3-2动态路由配置
模式 | 匹配路径 | $router.params |
/user/:username | /user/evan | {username:'evan'} |
/user/:username/post/:post_id | /user/evan/post/123 | {username:'evan',post_id:123} |
路由模式:mode:'hash'或mode:'history'
3-3嵌套路由
路由嵌套路由
3-4编程式路由
通过js来实现页面的跳转
$router.push("name")
$router.push({path:"name"})
$router.push({path:"name?a=123"})或者$router.push({path:"name",query:{a:123}})
$router.go(1)
3-5命名路由和命名视图
给路由定义不同的名字,根据名字进行匹配
给不同的router-view定义名字,通过名字进行对应组件的渲染
跳转到购物车页面
//通过命名路由跳转,要用v-bind绑定
跳转到购物车页面
//params是路由参数,不是页面之间跳转的参数
跳转到购物车页面
{
path:'/cart/:cartId',
name:'cart',
component:Cart
}
第4章Vue-resource和Axios
4-1 vue-resourse使用
vue-resource的请求API是按照REST风格设计的,它提供了7种请求API
参数 | 类型 | 描述 |
url | string | 请求的URL |
method | string | 请求的HTTP方法,例如:'GET','POST'或其他HTTP方法 |
body | Object,FormDatestring | request body |
params | Object | 请求的URL参数对象 |
headers | Object | request header |
timeout | number | 单位为毫秒的请求超时时间(0表示无超时时间) |
before | function(request) | 请求发送前的处理函数,类似于jQuery的beforeSend函数 |
progress | function(events) | ProgressEvent回调处理函数 |
credientials | boolean | 表示跨域请求时是否需要使用凭证 |
emulateHTTP | boolean | 发送PUT,PATCH,DELETE,请求时以HTTP POST的方式发送,并设置请求头的x-HTTP-Method-Override |
emulateJson | boolean | 将request body以application/x-www-form-urlencoded content类型,让服务器端识别 |
Vue.http.interceptors.push((request,next)=>{
//...
//请求发送前的处理逻辑
//...
next((response)=>{
//...
//请求发送后的处理逻辑
//...
//根据请求的状态,response参数会返回给successCallback或errorCallback
return response
})
})
jsonp跨域
Title
4-2 axios介绍
function getUserAccount(){
return axios.get('/user/12345');
}
function getUserPermissions(){
return axios.get('/user/12345/peimissions')
}
axios.all([getUserAccount(),getUserPeimissions()])
.then(axios.spread(function(accept,perms){
}));
Title
第5章ES6常用语法
5-1 ES6简介
5-2 ES6常用命令
ES6
5-3 拓展参数讲解
promise
5-4 Promise讲解
5-5 ES6模块化开发讲解
5-6 AMD、CMD、CommonJS和ES6差异