vue this.refs,vue3.0 refs_1

  vue this.refs,vue3.0 refs

  这篇文章主要介绍了某视频剪辑软件实例中使用$参考文献的注意事项,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  在开发过程中,经常会通过实例的虚拟机.$refs(这个。$参考文献)取得通过裁判员注册过的组件,并进行相应操作,但存在取不到元素的情况,其根本原因是因为$参考文献只能取得已安装(渲染)之后的元素。

  例如,在这种情况中,若旗从真值切换到假值取不到节点是正常的,因为控制显示如果为假值,那么该节点不会被渲染。

  但如果从假值切换到真值时,也可能取不到节点,这是因为渲染需要时间,通常可以使用$nextTick()解决。

  .

  el-table v-if=flag ref=table

  埃尔表列属性=prop1/el表列

  埃尔-表列属性= 2号道具/El-表列

  /el-table

  .

  导出默认值{

  方法:{

  这个. refs.table.XXX()

  }

  }

  但存在一个极特殊的情况,第一次页面渲染的时候,$参考文献也取不到值。这个时候就要考虑虚拟展示进行组件元素的隐藏与展示。

  因为虚拟展示是通过钢性铸铁的显示:无进行隐藏控制,所以一开始就会渲染,肯定能够取到元素

  补充:Vue.js中ref ($refs)用法举例总结及应注意的坑

  

一、根据官方文档总结的用法:

  看vue。j文档中的裁判员部分,自己总结了下裁判员的使用方法以便后面查阅。

  1、参考使用在外面的组件上

  超文本标记语言部分

  div id= ref-outside-component v-on:click=控制台ref

  组件-父ref=outsideComponentRef

  /组件-父亲

  字首在外面的组件上/p

  /div

  射流研究…部分

  var refoutsidecomponentTem={

  模板: div class=childComph5我是子组件/h5/div

  };

  var refoutsidecomponent=new Vue({

  El:"# ref-outside-component ",

  组件:{

  “组件-父亲”:refoutsidecontem

  },

  方法:{

  consoleRef:function () {

  控制台。日志(这个);//# ref-外部组件某视频剪辑软件实例

  console.log(这个参考文献。outsidecomponentref);//div.childComp vue实例

  }

  }

  });

  2、参考使用在外面的元素上

  超文本标记语言部分

  !- ref在外面的元素上-

  div id= ref-outside-DOM v-on:click= console ref

  组件-父亲

  /组件-父亲

  p ref=outsideDomRefref在外面的元素上/p

  /div

  射流研究…部分

  var refoutsidedomTem={

  模板: div class=childComph5我是子组件/h5/div

  };

  var refoutsidedom=new Vue({

  El:"# ref-outside-DOM ",

  组件:{

   component-father :refoutsidedomitem

  },

  方法:{

  consoleRef:function () {

  控制台。日志(这个);//#ref-outside-dom vue实例

  console.log(这个参考文献。outsidedomref);//p ref在外面的元素上/p

  }

  }

  });

  3、参考使用在里面的元素上-局部注册组件

  超文本标记语言部分

  !- ref在里面的元素上-

  div id=ref-inside-dom

  组件-父亲

  /组件-父亲

  字首在里面的元素上/p

  /div

  射流研究…部分

  var refinsidedomTem={

  模板: div class= child comp v-on:click= console ref

  h5 ref=insideDomRef 我是子组件/h5

  /div ,

  方法:{

  consoleRef:function () {

  控制台。日志(这个);//div.childComp vue实例

  console.log(这个参考文献。insidedomref);//h5我是子组件/h5

  }

  }

  };

  var refinsidedom=new Vue({

  El:"# ref-inside-DOM ",

  组件:{

  “component-father”:refin sidedom项

  }

  });

  4、参考使用在里面的元素上-全局注册组件

  超文本标记语言部分

  !- ref在里面的元素上-全局注册-

  div id=ref-inside-dom-all

  ref-inside-DOM-quanjv/ref-inside-DOM-quanjv

  /div

  射流研究…部分

  vue。组件( ref-inside-DOM-quan JV ,{

  模板:" div class=insideFather "

  input type= text ref= insideDomRefAll v-on:input= showinsideDomRef

  字首在里面的元素上-全局注册/p

  /div ,

  方法:{

  showinsideDomRef:function () {

  控制台。日志(这个);//这里的这其实还是内部过滤器

  console.log(这个。$ refs . insidedomrefall);//输入类型=text

  }

  }

  });

  var refinsidedomall=new Vue({

  el:#ref-inside-dom-all

  });

  

二、应注意的坑

  1.如果要通过v-添加不同的refs进行遍历,记得加:sign,即:ref=a变量;

  这和其他属性是一样的。如果是定值,不需要加:sign。如果是变量,记得加:sign。

  2.通过:ref=变量添加一个ref(即add: sign)。如果想得到这个ref,需要加上[0],比如这个。$ refs[refsarrayitem][0];如果不是ref=一个变量而是ref=一个字符串的方式,就不需要添加了,比如这个。$refs[refsArrayItem]

  添加和不添加[0]的区别-未展开

  加与不加的区别[0]-展开。

  3.当你想在元素ui对话框打开后获取dom时,应该使用$nextTick,而不是直接使用这个。$参考文献。imgLocal2:

  Console.log(在此之外。$refs.imgLocal2 ,这个。$ refs . imglocal 2);

  setTimeout(()={

  console.log(this。$refs.imgLocal2 setTimeout ,这。$ refs . imglocal 2);

  }, 500);//不推荐

  这个。$nextTick(()={

  console.log(this。$refs.imgLocal2 $nextTick ,这个。$ refs . imglocal 2);

  });

  以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。如有错误或不足之处,请不吝赐教。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: