全网整合营销服务商

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

免费咨询热线: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 


相关文章: 如何在IIS中新建站点并解决端口绑定冲突?  安徽网站建设与外贸建站服务专业定制方案  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  成都网站制作报价公司,成都工业用气开户费用?  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  常州自助建站工具推荐:低成本搭建与模板选择技巧  如何通过虚拟主机空间快速建站?  建站之星ASP如何实现CMS高效搭建与安全管理?  如何在香港免费服务器上快速搭建网站?  制作销售网站教学视频,销售网站有哪些?  建站之星安装后如何配置SEO及设计样式?  建站之星代理如何获取技术支持?  想学网站制作怎么学,建立一个网站要花费多少?  外贸公司网站制作哪家好,maersk船公司官网?  如何用5美元大硬盘VPS安全高效搭建个人网站?  建设网站制作价格,怎样建立自己的公司网站?  专业商城网站制作公司有哪些,pi商城官网是哪个?  如何在阿里云购买域名并搭建网站?  建站之星上传入口如何快速找到?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  如何快速搭建FTP站点实现文件共享?  利用JavaScript实现拖拽改变元素大小  魔毅自助建站系统:模板定制与SEO优化一键生成指南  如何快速查询域名建站关键信息?  婚礼视频制作网站,学习*后期制作的网站有哪些?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  设计网站制作公司有哪些,制作网页教程?  如何快速打造个性化非模板自助建站?  如何快速搭建虚拟主机网站?新手必看指南  建站主机解析:虚拟主机配置与服务器选择指南  建站主机选虚拟主机还是云服务器更好?  如何在阿里云服务器自主搭建网站?  如何快速生成凡客建站的专业级图册?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  如何获取PHP WAP自助建站系统源码?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  建站之星导航如何优化提升用户体验?  制作门户网站的参考文献在哪,小说网站怎么建立?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  如何高效利用亚马逊云主机搭建企业网站?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  建站之星安装模板失败:服务器环境不兼容?  网站制作网站,深圳做网站哪家比较好?  如何选择高性价比服务器搭建个人网站?  如何在景安云服务器上绑定域名并配置虚拟主机?  制作证书网站有哪些,全国城建培训中心证书查询官网?  ,怎么在广州志愿者网站注册?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  建站之星导航菜单设置与功能模块配置全攻略 

您的项目需求

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