代码之家  ›  专栏  ›  技术社区  ›  Johan

计算指令中的元素高度

  •  1
  • Johan  · 技术社区  · 6 年前

    为什么 nextTick 在下面的例子中需要计算元素高度?据我所知, 下一步 用于在修改反应性数据后等待DOM更新,但以下情况除外:

    Vue.directive('test', {
        bind: function(el) {
        console.log($(el).css('height'))
        Vue.nextTick(() => {
            console.log($(el).css('height'))
        })
      }
    });
    
    var demo = new Vue({
        el: '#demo'
    })
    
    <div id="demo">
      <div v-test>
        lorem
        lorem
      </div>
    </div>
    

    http://jsfiddle.net/LPfpS/463/

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ankit Kumar Ojha    6 年前

    你用错钩子了。

    钩子函数 一个指令定义对象可以提供几个钩子 功能(全部可选):

    1. bind:当指令第一次绑定到 元素。在这里你可以做一次性的安装工作。

    2. inserted:当绑定元素插入到其 父节点(这只保证父节点存在,而不是 必须在文件中)。

    Vue.directive('test', {
        inserted: function(el) {
        console.log($(el).css('height'))
    
      }
    });
    
    var demo = new Vue({
        el: '#demo'
    })
    

    Fiddle