全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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).select2({...});
}

Vue.directive('line-inserted', {
  inserted: function (el, binding) {
   var lineIndex = binding.value;
   renderLines(el, lineIndex);
  }
});

详情参见Vue官方文档自定义指令

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Vue.js  # 列表渲染  # jQuery  # Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)  # VUEJS实战之构建基础并渲染出列表(1)  # 深入理解Vue 的条件渲染和列表渲染  # 详解vuejs之v-for列表渲染  # vue.js基于v-for实现批量渲染 Json数组对象列表数据示例  # Vue列表页渲染优化详解  # Vue.JS入门教程之列表渲染  # Vue.js学习教程之列表渲染详解  # Vue 监听列表item渲染事件方法  # Vue前端高效开发之列表渲染指令  # 绑定  # 自定义  # 定值  # 几个  # 很好  # 修饰符  # 去找  # 可选  # 不包括  # 回调  # 大家多多  # 到该  # 可以用来  # 这并  # 不是一种  # 文档  # 列表中  # 赋予了  # color  # function 


相关文章: php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  名字制作网站免费,所有小说网站的名字?  h5在线制作网站电脑版下载,h5网页制作软件?  如何通过PHP快速构建高效问答网站功能?  制作证书网站有哪些,全国城建培训中心证书查询官网?  如何高效生成建站之星成品网站源码?  网站代码制作软件有哪些,如何生成自己网站的代码?  青岛网站建设如何选择本地服务器?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  制作网站的基本流程,设计网站的软件是什么?  实现虚拟支付需哪些建站技术支撑?  c# 在ASP.NET Core中管理和取消后台任务  jQuery 常见小例汇总  实惠建站价格推荐:2025年高性价比自助建站套餐解析  宝塔新建站点报错如何解决?  网站制作企业,网站的banner和导航栏是指什么?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  如何选择高效可靠的多用户建站源码资源?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  网站制作话术技巧,网站推广做的好怎么话术?  c# 服务器GC和工作站GC的区别和设置  建站之星安全性能如何?防护体系能否抵御黑客入侵?  北京网站制作网页,网站升级改版需要多久?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  网站制作服务平台,有什么网站可以发布本地服务信息?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  营销式网站制作方案,销售哪个网站招聘效果最好?  如何快速使用云服务器搭建个人网站?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  如何在IIS服务器上快速部署高效网站?  如何选择高效便捷的WAP商城建站系统?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  如何配置FTP站点权限与安全设置?  如何在香港服务器上快速搭建免备案网站?  深圳网站制作的公司有哪些,dido官方网站?  文字头像制作网站推荐软件,醒图能自动配文字吗?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  如何选择香港主机高效搭建外贸独立站?  定制建站方案优化指南:企业官网开发与建站费用解析  如何基于云服务器快速搭建网站及云盘系统?  建站主机选购指南:核心配置优化与品牌推荐方案  如何制作一个表白网站视频,关于勇敢表白的小标题?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  常州企业网站制作公司,全国继续教育网怎么登录?  制作网站怎么制作,*游戏网站怎么搭建?  活动邀请函制作网站有哪些,活动邀请函文案?  如何用西部建站助手快速创建专业网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。