VUE v-for循環(huán)中每個(gè)item節(jié)點(diǎn)動(dòng)態(tài)綁定不同函數(shù)的實(shí)例
一. 業(yè)務(wù)場(chǎng)景:
一個(gè)title 處 可能有 一個(gè)或多個(gè)按鈕, 按鈕對(duì)應(yīng)不同的響應(yīng)事件
二. 思路 :
按鈕個(gè)數(shù) 根據(jù)傳入的數(shù)據(jù)length 來(lái)循環(huán)渲染, 每條數(shù)據(jù)對(duì)應(yīng)的事件名稱 通過(guò)動(dòng)態(tài)綁定
三. 封裝組件
1. 視圖層面
2. 代碼部分
2.1 結(jié)構(gòu)部分
<!-- 多個(gè)button組件--> <titleAddBtn :addBtnList="addBtnList" @clkCallBk="listenCall"></titleAddBtn>
2.2 JS部分
2.2.1 引入組件
import titleAddBtn from '@/components/titleAddBtn'
組件注冊(cè):
components: { titleAddBtn },
2.2.2 傳入數(shù)據(jù)
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 傳入數(shù)據(jù)說(shuō)明:
title 是 按鈕上的文字,
icon 傳入 elementui icon部分 提供的 class名
methods 傳入 在父組件中 定義的 對(duì)應(yīng)按鈕的函數(shù)方法名
2.2.3 監(jiān)聽(tīng) 子組件點(diǎn)擊哪個(gè)按鈕(促發(fā)哪個(gè)函數(shù))
methods: { listenCall(methodsWords) { console.log('methodsWords', methodsWords) this[methodsWords]() }, }
2.2.4 這里的 this[methodsWords] 動(dòng)態(tài)方法 指向 數(shù)據(jù)定義中的 addBtnList 的 methods
還需要添加
methods: { addItem() { console.log(11) }, addItem2() { console.log(112) }, ... }
四. 總結(jié)
最后的 this[methodsWords]() 調(diào)用 不能夠?qū)懗?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循環(huán)中每個(gè)item節(jié)點(diǎn)動(dòng)態(tài)綁定不同函數(shù)的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue3?中使用?jsx?開(kāi)發(fā)的詳細(xì)過(guò)程
這篇文章主要介紹了vue3?中使用?jsx?開(kāi)發(fā),本文著重說(shuō)一下在使用 .vue 文件和 .jsx 文件在使用語(yǔ)法上的差異,需要的朋友可以參考下2022-09-09vue跳轉(zhuǎn)方式(打開(kāi)新頁(yè)面)及傳參操作示例
這篇文章主要介紹了vue跳轉(zhuǎn)方式(打開(kāi)新頁(yè)面)及傳參操作,結(jié)合實(shí)例形式分析了vue.js跳轉(zhuǎn)實(shí)現(xiàn)方式與參數(shù)接受相關(guān)操作技巧,需要的朋友可以參考下2020-01-01vue移動(dòng)端如何解決click事件延遲,封裝tap等事件
這篇文章主要介紹了vue移動(dòng)端如何解決click事件延遲,封裝tap等事件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03Vue使用NProgress實(shí)現(xiàn)頁(yè)面頂部的進(jìn)度條顯示效果
這篇文章主要介紹了vue Nprogress頁(yè)面頂部進(jìn)度條功能實(shí)現(xiàn),NProgress是頁(yè)面跳轉(zhuǎn)是出現(xiàn)在瀏覽器頂部的進(jìn)度條,本文通過(guò)實(shí)例代碼給大家講解,需要的朋友可以參考下2022-12-12Vue實(shí)現(xiàn)騰訊云點(diǎn)播視頻上傳功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了Vue實(shí)現(xiàn)騰訊云點(diǎn)播視頻上傳功能的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08Vue Element前端應(yīng)用開(kāi)發(fā)之根據(jù)ABP后端接口實(shí)現(xiàn)前端展示
本篇著重介紹基于ABP后端接口信息,實(shí)現(xiàn)對(duì)前端界面的開(kāi)發(fā)工作。2021-05-05vue3封裝數(shù)字滾動(dòng)組件的實(shí)現(xiàn)示例
本文主要介紹了vue3封裝數(shù)字滾動(dòng)組件的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08