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 相关文章推荐
在textarea中屏蔽js的某个function的javascript代码
Apr 20 Javascript
javascript CSS画图之基础篇
Jul 29 Javascript
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
Oct 13 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
Aug 12 Javascript
javaScript 动态访问JSon元素示例代码
Aug 30 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
Nov 22 Javascript
jQuery中的val()示例应用
Feb 26 Javascript
js实现精美的图片跟随鼠标效果实例
May 16 Javascript
Bootstrap如何激活导航状态
Mar 22 Javascript
JavaScript中双向数据绑定详解
May 03 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
May 11 Javascript
vue @ ~ 相对路径 路径别名设置方式
Jun 05 Vue.js
原生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
星际流派综述
2020/03/04 星际争霸
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
php实现过滤UBB代码的类
2015/03/12 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
PHP数组与对象之间使用递归实现转换的方法
2015/06/24 PHP
php分页查询的简单实现代码
2017/03/14 PHP
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
js用闭包遍历树状数组的方法
2014/03/19 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
JavaScript程序设计之JS调试
2015/12/09 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
vue中倒计时组件的实例代码
2018/07/06 Javascript
Vue路由管理器Vue-router的使用方法详解
2020/02/05 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
Python编写电话薄实现增删改查功能
2016/05/07 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
python实现机器学习之元线性回归
2018/09/06 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
python实现事件驱动
2018/11/21 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
Lee牛仔裤澳大利亚官网:美国著名牛仔裤品牌
2017/09/02 全球购物
vue实现倒计时功能
2021/03/24 Vue.js
护士工作失误检讨书
2014/09/14 职场文书
英文自荐信范文
2015/03/25 职场文书
听证通知书
2015/04/24 职场文书
小学体育组工作总结
2015/08/13 职场文书
用Python制作灯光秀短视频的思路详解
2021/04/13 Python