一、$nextTick

1、vue的dom执行异步更新,只要观察到数据变化,vue将开启一个队列,并缓冲在同一事件循环中发生的所有数据改变。

2、vue.$nextTick(cb),数据发生变化,更新dom后执行回调

二、$refs用法

1、ref作用于普通元素——得到dom节点

2、ref作用于子组件——得到组件实例,可使用组件所有方法

3、当v-for用于元素或组件的时候,refs将是包含dom节点或组件实例的数组(想得到单个的ref,只需循环即可)

三、vue组件hover事件模拟

1、mouseover/mouseout,mouseenter/mouseleave

2、第三方组件加事件不生效问题——添加native修饰符

四、嵌套路由

1、一个被路由过来的页面下可以继续使用路由。比如我们需要路由过来的页面头部一些信息不变,下面点击不同信息展示不同内容时就可以用到嵌套路由

2、嵌套路由声明,利用children: [] 去声明嵌套路由

3、嵌套路由声明的注意事项:

(1)以“/”开头的路由会被当做根路径,所以子路由的path是不能加“/”的

(2)注意匹配一个path为空的情况,然后匹配一个default组件,避免出现空白页的问题

五、keep-alive

1、vue的内置组件,能在组件切换过程中将状态保存在内存中,防止dom重复渲染。keep-alive包裹动态组件时,能缓存不活动的组件实例,而不是销毁他们。

2、keep-alive与transition相似,只是一个抽象组件,真实或虚拟都不会渲染,也不存在与父组件链中

3、include、exclude:匹配的组件缓存/不缓存

注意:(1)exclude的优先级大于include;(2)注意匹配的是组件名称,而不是路由名称,也就是说要给组件设置name值。

4、keep-alive生命周期钩子函数:

(1)activated:组件被激活时调用,组件第一次渲染也会调用,之后每次进入keep-alive均调用

(2)deactivated:组件被停用时调用

5、什么时候获取数据?

当引入keep-alive 的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activated,退出时触发deactivated。当再次进入(前进或者后退)时,只触发activated。keep-alive 之后页面模板第一次初始化解析变成HTML片段后,再次进入就不在重新解析而是读取内存中的数据,即只有当数据变化时,才使用VirtualDOM进行diff更新。故页面进入的数据获取应该在activated中也放一份。数据下载完毕手动操作DOM的部分也应该在activated中执行才会生效。所以,应该activated中留一份数据获取的代码,或者不要created部分,直接将created中的代码转移到activated中。

六、is特性:

1、限制元素:vue编译器为组件提供特殊功能,在有些情况下,组件也可以是原生html元素的形式,以is特性扩展

原因在于有些html元素本身的限制比如select等,如果想在<select></select>中使用组件模板,这时候就需要使用is特性扩展,从而达到在受限的html元素中使用

2、动态组件:vue中提供一个动态模板,可以再任意模板中切换,就是用is特性来挂载:<component :is="currentView"></component>,比如当currentView为comA时就显示comA模板,为comB时就显示comB模板

七:vue路由属性及用法

1、to:路由链接

2、replace:设置replace属性不留下history记录,即不能回退

3、append:设置append属性在当前路径前添加基路径:比如a to b,加append为/a/b,不加append就为/b

4、tag:渲染标签

5、active-class:设置链接激活时使用的css类名。默认值可以通过路由的构造选项linkActiveClass来全局配置,默认值为 ‘router-link-active‘

6、exact:激活的路径匹配规则

7、events:触发导航的事件(默认click),可以是一个字符串或包含字符串的数组

8、scrollBehavior(to, from, savedPosition)控制滚动

八、路由钩子函数:主要用来拦截导航

1、全局的:

router.beforeEach()

router.afterEach():没有next(),不能改变导航

2、某个路由独享的钩子:

在定义路由路径时,beforeEnter(to, from, next)

3、组件内钩子:

beforeRouteEnter():不能访问this,可以通过传一个回调next(vm => {})来访问组件实例

beforeRouteLeave():可以访问this,可通过next(false)取消导航;同时必须得有next()

beforeRouteUpdate():二级导航更新时触发,可访问this;即当前路由改变,但是该组件被复用时调用

VUE温习:nextTick、$refs、嵌套路由、keep-alive缓存、is特性、路由属性用法、路由钩子函数的更多相关文章

  1. vue-router钩子函数实现路由守卫

    接上一篇,我们一起学习了vue路由的基本使用以及动态路由.路由嵌套以及路由命名等知识,今天我们一起来学习记录vue-router的钩子函数实现路由守卫: 何为路由守卫?路由守卫有点类似于ajax的请求 ...

  2. Vue父子组件生命周期执行顺序及钩子函数的个人理解

    先附一张官网上的vue实例的生命周期图,每个Vue实例在被创建的时候都需要经过一系列的初始化过程,例如需要设置数据监听,编译模板,将实例挂载到DOM并在数据变化时更新DOM等.同时在这个过程中也会运行 ...

  3. 关于 vue 生命周期 钩子函数 事件

    vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染->更新->渲染.卸载等一系列过程,我们称这是vue的生命周期. 通俗的将就是vue实例从创建到销毁 ...

  4. [前端] VUE基础 (5) (过滤器、生命周期、钩子函数)

    一.过滤器 过滤器分为局部过滤器和全局过滤器. 1.局部过滤器 <body> <div id="app"> </div> <script ...

  5. VUE生命周期中的钩子函数及父子组件的执行顺序

    先附一张官网上的vue实例的生命周期图,每个Vue实例在被创建的时候都需要经过一系列的初始化过程,例如需要设置数据监听,编译模板,将实例挂载到DOM并在数据变化时更新DOM等.同时在这个过程中也会运行 ...

  6. Vue(基础六)_嵌套路由(续)

    一.前言                  1.路由嵌套里面的公共路由                  2.keep-alive路由缓存                  3.导航守卫 二.主要内容 ...

  7. Vue学习笔记【28】——Vue路由(使用 children 属性实现路由嵌套)

    使用 children 属性实现路由嵌套   <div id="app">    <router-link to="/account"> ...

  8. Vue总结第五天:vue-router (使用模块化(创建Vue组件)机制编程)、router-link 标签的属性、路由代码跳转、懒加载、路由嵌套(子路由)、路由传递数据、导航守卫)

    Vue总结第五天:vue-router ✿ 路由(器)目录: □  vue中路由作用 □  vue-router基本使用 □  vue-router嵌套路由 □  vue-router参数传递 □  ...

  9. Vue的钩子函数[路由导航守卫、keep-alive、生命周期钩子]

    前言 说到Vue的钩子函数,可能很多人只停留在一些很简单常用的钩子(created,mounted),而且对于里面的区别,什么时候该用什么钩子,并没有仔细的去研究过,且Vue的生命周期在面试中也算是比 ...

随机推荐

  1. sendfile

    Sendfile 函数在两个文件描写叙述符之间直接传递数据(全然在内核中操作,传送),从而避免了内核缓冲区数据和用户缓冲区数据之间的拷贝,操作效率非常高,被称之为零拷贝. Sendfile 函数的定义 ...

  2. Python 输出有颜色的字体

    https://www.cnblogs.com/hellojesson/p/5961570.html

  3. js防止安卓手机软键盘弹出挤压页面导致变形的方法

    5防止安卓手机软键盘弹出挤压页面导致变形的方法 输入框定位在底部,手机端打开,输入框聚焦后软键盘打开为什么会瞬间自动关闭呢? 先看看问题: 1.原来是这样的: 2.在苹果手机里面是正常的: 3.到了安 ...

  4. ip转城市接口,ip转省份接口,ip转城市PHP方法

    新浪接口(速度快) $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$ip; $arr ...

  5. UOJ#62. 【UR #5】怎样跑得更快 数论 莫比乌斯反演

    原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ62.html 题解 太久没更博客了,该拯救我的博客了. $$\sum_{1\leq j \leq n} \ ...

  6. day6 note 字典的增删改查(以及setdefault用法补充)

    今天的内容主要是join的用法和字典的用法,由于已经有前面的列表作为基础,所以还比较简单,不过因为昨天的作业比较难也比较多,所以作业的讲解占用的时间比较长.我需要好好消化一下作业的部分. 思维导图: ...

  7. sql 的一些总结

    如果用到“每”  就要用到group  by   例:每个部门有多少人,就要用到分组技术 聚合函数一般作用在多条记录上 having 是分组厚的筛选条件,分组厚的数据组内再筛选,where 则是在分组 ...

  8. Linux下的Sreen命令使用

    详细的介绍请参看:http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html 一.简介 GNU Screen是一款由GNU计划开发的用于 ...

  9. 线程有gil锁

    gil锁作用: 遇到阻塞( 比如 recv() , accept() )就切换

  10. HDU 1385 Minimum Transport Cost (输出字典序最小路径)【最短路】

    <题目链接> 题目大意:给你一张图,有n个点,每个点都有需要缴的税,两个直接相连点之间的道路也有需要花费的费用.现在进行多次询问,给定起点和终点,输出给定起点和终点之间最少花费是多少,并且 ...