过滤器

1.局部过滤器 在当前组件内部使用过滤器(对某些数据进行装饰)

//声明
filters:{
'过滤器的名字':function(val,a,b){
//a 就是will ,val就是当前的数据
return xxx //返回处理好的结果
}
}
//使用 管道符
数据 | 过滤器的名字('will','william')

2.全局过滤器 只要过滤器一创建,在任何组件中都能使用

Vue.filter('过滤器的名字',function(val,a,b){})
在各个组件中都能使用

生命周期的钩子函数

Vue实例从创建到销毁的过程

diff算法

- [beforeCreate]

- [created]组件创建  ***

  - 虚拟DOM  React
- 发送ajax 获取数据 实现数据驱动视图 - [beforeMount] - [mounted] *** - 获取真实DOM - [beforeUpdate] - [updated] - [activated] - 激活当前组件 - [deactivated] - keep-alive Vue提供的内置组件,主要作用,让组件产生缓存
- 停用当前组件 - [beforeDestroy] - destroyed - 如果开了定时器,一定要关闭定时器

Vue-router

vue+vue-router 主要来做 SPA(Single Page Application) 单页面应用

vue-router是vue的核心插件

1.下载

<script src ='https://unpkg.com/vue-router/dist/vue-router.js'></script>

2.定义和创建路由

const Index = {   // 定义路由组件
data() {
return {}
},
template: `<div>我是首页</div>`
}
const Course = {
data() {
return {}
},
template: `<div>我是课程</div>`
}
routes = [{ //定义路由
path:'/',
component:Index,
},{
path:'/course',
component:Course,
}]

3.创建router实例并挂载到vue中

const router = new VueRouter({
routes // (缩写) 相当于 routes: routes
}) new Vue({
el:'#app',
data(){
return {}
},
router
})

命名路由

routes = [{  //定义路由
path:'/',
name:'index', //命名路由
component:Index,
},{
path:'/course',
name:'course', //命名路由
component:Course,
}] const router = new VueRouter({
routes // (缩写) 相当于 routes: routes
})
let App = {
data() {
return {}
},
// router-link和router-view 是vue-router 提供的两个全局组件
//router-view 是路由组件的出口
//router-link默认会被渲染成a标签,to属性默认被渲染成href
template: `
<div> <div class="header"> <router-link :to = '{name:"index"}'>首页</router-link>
<router-link :to = '{name:"course"}'>免费课程</router-link>
</div>
<router-view></router-view>
</div> `, }

动态路由匹配

可以动态的匹配路由地址,但用的还是同一个路由组件

$route 路由信息对象

$router 路由对象 VueRouter

    const User = {
data() {
return {
user_id:null
}
},
template: `<div>我是用户{{ user_id}}</div>`,
created() {
console.log(this.$route); //路由信息对象
// 提醒一下,当使用路由参数时,例如从 /user/foo 导航到 /user/bar,原来的组件实例会被复用。因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。不过,这也意味着组件的生命周期钩子不会再被调用。
},
watch: {
'$route'(to, from) {
// 对路由变化作出响应...
console.log(to.params.id);
console.log(from);
this.user_id = to.params.id;
//发送ajax }
}
} //创建路由
const router = new VueRouter({
//定义路由规则
routes: [ {
path: '/user/:id',
name: 'User',
component: User
} ]
})
let App = {
data() {
return {}
},
// router-link和router-view 是vue-router 提供的两个全局组件
//router-view 是路由组件的出口
template: `
<div> <div class="header">
<router-link :to = '{name:"User",params:{id:1}}'>用户1</router-link>
<router-link :to = '{name:"User",params:{id:2}}'>用户2</router-link> </div>
<router-view></router-view>
</div> ` }
new Vue({
el: '#app',
//挂载 路由对象
router,
data() {
return {}
},
template: `<App />`,
components: {
App
}
})

编程式的导航

当你点击时,这个方法会在内部调用,所以说, 点击等同于调用 router.push(...)

声明式:router-link :to="..."

编程式:router.push(...)

// 命名的路由
router.push({ name: 'user', params: { userId: '123' }}) // 带查询参数,变成 /register?plan=private
router.push({ path: 'register', query: { plan: 'private' }})

最新文章

  1. 过段时间逐步使用HTML5新增的web worker等内容
  2. Flask生成SECRET_KEY(密钥)的一种简单方法
  3. hiho一下 第九十六周 数论五&#183;欧拉函数
  4. XML美化工具及其他各种美化工具
  5. oracle 字段上下两条记录的相减
  6. tomcat配置多实例
  7. Code Blocks 使用 VC2013编译HelloWord
  8. GROUP BY语句与HAVING语句的使用
  9. C:指针函数一些误区
  10. 微信小程序-表单笔记
  11. java程序性能分析之thread dump和heap dump
  12. iUAP云运维平台v3.0全面支持基于K8s的微服务架构
  13. nginx配置备忘
  14. 【读书笔记】iOS-照相机与摄像头
  15. codeforces1003D(贪心)
  16. mysql5.5以上my.ini中设置字符集
  17. Java之路(一) 一切皆对象
  18. Hadoop教程(五)Hadoop分布式集群部署安装
  19. Android Studio —— java.lang.VerifyError: Verifier rejected class 问题解决
  20. Zookeeper的Quorum机制-谈谈怎样解决脑裂(split-brain)

热门文章

  1. PHP xml_set_external_entity_ref_handler() 函数
  2. PDO::query
  3. 牛客挑战赛39 D 牛牛的数学题 NTT FMT FWT
  4. Linux搭建Gitlab(Docker版)
  5. PHP代码混淆与加密——php screw plus
  6. 【NOIP2017】跳房子 题解(单调队列优化线性DP)
  7. Ajax 提交图片
  8. Eclipse Java EE IDE for Web Developers 4.5.1 安装hibername tools 插件
  9. cocos2d-x_下载游戏引擎并创建第一个项目
  10. python 爬虫刷访问量