vue中nextTick用法实例

来源:脚本之家  责任编辑:小易  

由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。 当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。然而在大多数情况下,你应该避免在此期间更改状态。如果要相应状态改变,通常最好使用计

什么是Vue.nextTick()

Vue父组件向子组件传递事件/调用事件 不是传递数据(props)哦,适用于 Vue 2.0 方法一:子组件监听父组件发送的方法 方法二:父组件调用子组件方法 子组件: export default { mounted: function () { this.$nextTick(function () { this.$on('

官方文档解释如下:

vue里面本身带有两个回调函数:一个是`Vue.nextTick(callback)`,当数据发生变化,更新后执行回调。

在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

下面开始介绍下,在页面加载一个数据列表完成之后,页面自动滚动定位到中间某个列表元素,需要在列表数据渲染完成,计算列表高度,再控制定位到指定行。首先介绍下一开始尝试没有生效的方案,这也是大家最容易出现错误的地方,vue.js提供的mount

我理解的官方文档的这句话的侧重点在最后那半句获取更新后的DOM,获取更新后的DOM言外之意就是什么操作需要用到了更新后的DOM而不能使用之前的DOM或者使用更新前的DOM或出问题,所以就衍生出了这个获取更新后的DOM的Vue方法。所以放在Vue.nextTick()回调函数中的执行的应该是会对DOM进行操作的 js代码,比如Swiper扩展包的

在修改数据后调用this.$nextTick,首次加载在mounted函数里面调用this.$nextTick this.$nextTick(function () { //dom已更新 })

var swiper = new Swiper('.swiper-container', {    pagination: '.swiper-pagination',    nextButton: '.swiper-button-next',    prevButton: '.swiper-button-prev',    paginationClickable: true,    spaceBetween: 30,    centeredSlides: true,    autoplay: 2500,    autoplayDisableOnInteraction: false   });

这要看你玩啥了,穷有穷的玩法,富有富的玩法。也有很多人往往是管不住自己的手,看到好的就想收,越陷越深,钱包越来越瘪,所以才有了文玩穷三代的说法。前两天看了一个文玩穷三代的笑话,发你一起乐乐。曾经的我身价不菲,住在北京三环以内,开着上百万的保时捷跑车。可是有一天,我迷上玩文玩……朋友们都劝我,让我不要入坑,我不听……一开始只是金刚、星月,后来是沉香、绿松石。我以为我可以一直沉浸在文玩的世界里,无忧无虑……朋友劝我弃坑,媳妇要跟我离婚,我都趾高气昂置之不理。最后我查了银行卡,再也没了心气儿……玩文玩都是这样的吗?当然不是!大家请继续看~越玩越富的人曾经的我是个屌丝,只有一个爱好就是玩文玩、盘手串!

<ul id="demo"> <li v-for="item in list">{{item}}</div> </ul> new Vue({ el:'#demo', data:{ list=[0,1,2,3,4,5,6,7,8,9,10] }, methods:{ push:function(){ this.list.push(11); this.nextTick(function(){ alert('数据已经更新') }); this.$nextTick(function(){ alert('v-for渲染已经完成') }) } }}) Vue.nextTick(callback)`,当数据发生变化,更新后执行回调。 Vue.$nextTick(callback)`,当dom发生变化,更新后执行的回调。

1-0击败乌兹别克斯坦之后,中国队延续了世界杯出线的希望,那么,就12强赛小组赛而言,中国队要想创造奇迹,也就是争取小组第三,需要满足哪些条件呢?先来看一下这一轮的战况,韩国0:0平伊朗,中国1:0乌兹别克斯坦,叙利亚3:1卡塔尔,此战过后,这个小组的积分情况是:伊朗21分(提前小组第一出线)、韩国14分、乌兹别克斯坦12分、叙利亚12分、中国队9分、卡塔尔队7分。净胜球差距有点太大了净胜球方面,叙利亚净胜球为1,乌兹别克斯坦为-1,中国队为-3,中国队比叙利亚队少了4个净胜球。感觉自己肾不给力/对自己长度、莳间不太满意的朋友/找我用户名上的徽欣其实,看到这里,相信很多人的心里就凉了半截。那么

以上就是本次介绍的全部知识点内容,感谢大家对脚本之家的支持。

货币呈现印刷毛病,是一种极其稀有的状况。假如能具有一张印错了的货币,可以说命运相称不错了。但是,在近来一则新闻里,当事人王密斯的命运仿佛更好。她不只具有了一张面值100元的水印倒置的错版币,并且另有专家出价400万要买这张纸币。但是,王密斯的命运真的那末好吗?人民币的印制进程非常松散,出错的或许性微不足道。2005年中国人民银行有关负责人就曾对“错版货泉”的麻烦答记者问,据其引见,印钞厂印制钞票时使用的印版、制作硬币使用的钢模等,是一个全体,在印制进程中,不或许呈现部分倒置或倒置的麻烦。据此负责人引见,如今很多所谓的“错币”,若细心察看便会发明刀切、粘贴、修刮的陈迹。有不法分子报酬制作“错币”

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

webpack + vue.js中如何使用$nextTick,具体写在什么地方

当你的业务逻辑代码需要用到更新后的dom的时候使用,写在方法之中。例子:newVue({el:'#app',created(){this.$nextTick(function(){//代码})}})

vue.js 在mounted,this.nextTick中操作dom,报错是什么原因

在一个对象通过点击按钮增添数组,用Vue.set却只能一次按下按钮增添一个,想问下如何才能动态增加数组看varscreens={};addScreen:function(){Vue.set(this.screens,'children',[]);},现在改为varscreens=[];

vue2 $nextTick()在firefox不起作用,总是undefined

vue面本身带两调函数:

`Vue.nextTick(callback)`数据发变化更新执行调

另`Vue.$nextTick(callback)`dom发变化更新执行调

栗:

...

  • {{item}}

...

new Vue({

el:'#demo',

data:{

list=[0,1,2,3,4,5,6,7,8,9,10]

},

methods:{

push:function(){

this.list.push(11);

this.nextTick(function(){

alert('数据已经更新')

});

this.$nextTick(function(){

alert('v-for渲染已经完')

})

}

}

})

本回答被网友采纳

vue 怎么在列表渲染后绑定 jquery 插件

Vue.js列表渲染绑定jQuery插件的正确姿势

使用v-for绑定列表时,有时候需要绑定如select2之类的jQuery插件。

需要在Vue根据数组内容生成dom元素之后,去找到该dom元素,然后 $().xxx绑定jQuery插件。

之前使用Vue.nextTick方法,在一次dom更新以后执行延迟回调,渲染jQuery插件。

然而这并不是一种很好的方式,有时候难以确定dom元素更新是否是我们需要关注的那个。

在列表中渲染Jquery插件的正确姿势,是使用自定义指令。自定义指令提供了一些钩子函数,可以准确的监听到dom元素与数据的绑定周期。

钩子函数

指令定义函数提供了几个钩子函数(可选):

  • bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。

  • inserted: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。

  • update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新(详细的钩子函数参数见下)。

  • componentUpdated: 被绑定元素所在模板完成一次更新周期时调用。

  • unbind: 只调用一次, 指令与元素解绑时调用。

  • 接下来我们来看一下钩子函数的参数 (包括 el,binding,vnode,oldVnode) 。

    钩子函数参数

    钩子函数被赋予了以下参数:

  • el: 指令所绑定的元素,可以用来直接操作 DOM 。

  • binding: 一个对象,包含以下属性:

  • name: 指令名,不包括 v- 前缀。

  • value: 指令的绑定值, 例如: v-my-directive="1 + 1", value 的值是 2。

  • oldValue: 指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用。

  • expression: 绑定值的字符串形式。 例如 v-my-directive="1 + 1" , expression 的值是 "1 + 1"。

  • arg: 传给指令的参数。例如 v-my-directive:foo, arg 的值是 "foo"。

  • modifiers: 一个包含修饰符的对象。 例如: v-my-directive.foo.bar, 修饰符对象 modifiers 的值是 { foo: true, bar: true }。

  • vnode: Vue 编译生成的虚拟节点,查阅 VNode API 了解更多详情。

  • oldVnode: 上一个虚拟节点,仅在 update 和 componentUpdated 钩子中可用。

  • 例子

  • <table id="testTable">
  •     <tr v-for="(el, lineIndex) in lines" v-line-inserted="lineIndex" >
  •         <td>
  •              <input  name="bindSelect2"  />
  •         <td>
  •     </tr></table>
  • function renderLines(el, lineIndex){     //渲染select2
  •     $("testTable tr").eq(lineIndex).find("input[name='bindSelect2']").select2({...});
  • }
  • Vue.directive('line-inserted', {
  •      inserted: function (el, binding) {          var lineIndex = binding.value;
  •          renderLines(el, lineIndex);
  •      }
  • });

Vue官网里的整数迭代 v-for例子怎么运行不了

vue里面本身带有两个回调函数:一个是`Vue.nextTick(callback)`,当数据发生变化,更新后执行回调。另一个是`Vue.$nextTick(callback)`,当dom发生变化,更新后执行的回调。栗子:{{item}}newVue({el:'#demo',data:{list=[0,1,2,3,4,5,6,7,8,9,10]},methods:{push:function(){this.list.push(11);this.nextTick(function(){alert('数据已经更新')});this.$nextTick(function(){alert('v-for渲染已经完成')})}}})

  • 本文相关:
  • 详解vue中$nexttick和$forceupdate的用法
  • 深入学习vue nexttick的用法及原理
  • vue中this.$nexttick的作用及用法
  • vue+element ui+lumen实现通用表格分页功能
  • vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
  • vue 录制视频并压缩视频文件的方法
  • 简述vue中的config配置
  • vue强制组件重新渲染的方法讨论
  • iview table render集成switch开关的实例
  • vue中使用极验验证码的方法(附demo)
  • vuejs绑定class和style样式
  • 使用vue-resource进行数据交互的实例
  • 又一款mvvm组件 构建自己的vue组件(2)
  • webpack + vue.js中如何使用$nextTick,具体写在什...
  • vue.js 在mounted,this.nextTick中操作dom,报错...
  • vue2 $nextTick()在firefox不起作用,总是undefined
  • vue 怎么在列表渲染后绑定 jquery 插件
  • Vue官网里的整数迭代 v-for例子怎么运行不了
  • vue updated怎么使用
  • vue单文件组件通常是如何调用实例方法的
  • 如何在vue.js渲染完界面之后调用一个函数
  • 怎么将vue中method中的方法设置为公有,各个vue界...
  • vue怎么在父组件里面拿到所有子组件都渲染完成后的dom
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved