zoukankan      html  css  js  c++  java
  • vue1和vue2获取dom元素的方法 及 nextTick() 、$nextTick()

    vue1.*版本中

    在标签中加上el='dom',然后在代码中this.$els.dom这样就拿到了页面元素

    例如:<div class='box' el='myBox'>你好</div>

    让你好的颜色显示为红色:this.$els.myBox.style.color = 'red'

    vue2.*版本中

    在标签中加上ref='dom',然后在代码中this.$refs.dom这样就拿到了页面元素

    例如:<div class='box' ref='myBox'>你好</div>

    让你好的颜色显示为红色:this.$refs.myBox.style.color = 'red'

    注:

    可以用 $nextTick 来确保 Dom 变化后再执行一些事情:

    <ul ref="nav">
    	<li>1</li>
    	<li>2</li>
    	<li>3</li>
    </ul>
    
    this.$nextTick( () => {
    	this.$refs.nav.children[0].style.color = 'red';
    })

    vue2.0$nextTick监听数据渲染完成之后的回调函数

    vue里面本身带有两个回调函数:

      一个是`Vue.nextTick(callback)`,当数据发生变化,更新后执行回调。


      另一个是`Vue.$nextTick(callback)`,当dom发生变化,更新后执行的回调。

    例子:

    <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渲染已经完成')
                })
            }
        }
    })

    .

  • 相关阅读:
    自由工作者,从今天开始
    C#中MessageBox用法大全
    目前国内常见医用显示器品牌
    C#中可直接调用WIN32的API函数--USER32.DLL
    马年新年祝福
    PID算法学习记录
    Qt网络编程之使用cookie
    Qt使用HTTPS协议访问网站
    使用Qt访问网站的基本例子
    Qt TLS初始化失败解决办法
  • 原文地址:https://www.cnblogs.com/crazycode2/p/7691087.html
Copyright © 2011-2022 走看看