VUE v-for循环中每个item节点动态绑定不同函数的实例


Posted in Javascript onSeptember 26, 2018

一. 业务场景:

一个title 处 可能有 一个或多个按钮, 按钮对应不同的响应事件

二. 思路 :

按钮个数 根据传入的数据length 来循环渲染, 每条数据对应的事件名称 通过动态绑定

三. 封装组件

1. 视图层面

VUE v-for循环中每个item节点动态绑定不同函数的实例

2. 代码部分

2.1 结构部分

VUE v-for循环中每个item节点动态绑定不同函数的实例

<!-- 多个button组件-->
<titleAddBtn :addBtnList="addBtnList" @clkCallBk="listenCall"></titleAddBtn>

2.2 JS部分

2.2.1 引入组件

import titleAddBtn from '@/components/titleAddBtn'

组件注册:

components: { titleAddBtn },

2.2.2 传入数据

data() {

return {
 addBtnList: [
{
 title: '添加1',
 icon: 'el-icon-circle-plus-outline',
 methods: 'addItem'
},
{
 title: '添加2',
 icon: 'el-icon-circle-plus-outline',
 methods: 'addItem2'
},
{
 title: '添加3',
 icon: 'el-icon-circle-plus-outline',
 methods: 'addItem3'
}
 ],

}
 }

2.2.2 传入数据说明:

title 是 按钮上的文字,

icon 传入 elementui icon部分 提供的 class名

methods 传入 在父组件中 定义的 对应按钮的函数方法名

2.2.3 监听 子组件点击哪个按钮(促发哪个函数)

methods: {

listenCall(methodsWords) {
 console.log('methodsWords', methodsWords)
 this[methodsWords]()
},
 }

2.2.4 这里的 this[methodsWords] 动态方法 指向 数据定义中的 addBtnList 的 methods

还需要添加

methods: {

addItem() {
 console.log(11)
},
addItem2() {
 console.log(112)
},
...
}

四. 总结

最后的 this[methodsWords]() 调用 不能够写成 this.methodsWords()

五. 封装的组件部分

<template>
 <div>
 <div v-for="item in addBtnList" class="add-btn" @click="clkCall(item.methods)">
 <i class="add-btn-i" :class="item.icon"></i>
 <div>{{item.title}}</div>
 </div>
 </div>
</template>
<script>
 export default {
 name: 'titleAddBtn',
 props: ['addBtnList'],
 methods: {
 clkCall(methodsWords) {
 this.$emit('clkCallBk', methodsWords)
 }
 }
 }
</script>

以上这篇VUE v-for循环中每个item节点动态绑定不同函数的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
手把手教你自己写一个js表单验证框架的方法
Sep 14 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
Dec 31 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
Jan 26 Javascript
一个js过滤空格的小函数
Oct 10 Javascript
jQuery获取this当前对象子元素对象的方法
Nov 29 Javascript
angularjs ui-router中路由的二级嵌套
Mar 10 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
May 25 jQuery
vue.js 图片上传并预览及图片更换功能的实现代码
Aug 27 Javascript
vue项目中实现图片预览的公用组件功能
Oct 26 Javascript
vue移动端实现手机左右滑动入场动画
Jun 17 Javascript
jQuery轮播图功能制作方法详解
Dec 03 jQuery
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
Aug 11 Javascript
原生JS实现简单的无缝自动轮播效果
Sep 26 #Javascript
Vue中控制v-for循环次数的实现方法
Sep 26 #Javascript
web页面和微信小程序页面实现瀑布流效果
Sep 26 #Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
Sep 26 #Javascript
Vue监听事件实现计数点击依次增加的方法
Sep 26 #Javascript
在vue 中使用 less的教程详解
Sep 26 #Javascript
vue如何进行动画的封装
Sep 26 #Javascript
You might like
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
2014/05/08 PHP
PHP中使用SimpleXML检查XML文件结构实例
2015/01/07 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
ThinkPHP路由详解
2015/07/27 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
基于jquery的返回顶部效果(兼容IE6)
2011/01/17 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
2013/11/23 Javascript
css配合jquery美化 select
2013/11/29 Javascript
jQuery图片特效插件Revealing实现拉伸放大
2015/04/22 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
jQuery中delegate()方法的用法详解
2016/10/13 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
Layui实现主窗口和Iframe层参数传递
2019/11/14 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
python实现扫描局域网指定网段ip的方法
2019/04/16 Python
解决python 上传图片限制格式问题
2019/10/30 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
金融专业个人求职信
2013/09/22 职场文书
文化宣传方案
2014/03/13 职场文书
企业业务员岗位职责
2014/03/14 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
法院答辩状格式
2015/05/22 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python