vue中標(biāo)簽自定義屬性的使用及說(shuō)明
vue標(biāo)簽自定義屬性使用
在 vue 中,盡量避免對(duì)dom的操作,通過(guò)對(duì)狀態(tài)的管理實(shí)現(xiàn)需要的功能
舉個(gè)例子
vue獲取dom元素可以使用 ref 要想獲得自定義屬性,可以通過(guò)設(shè)置 ref 實(shí)現(xiàn)
<span data-num="21" ref="dataNum" ?@click="getData">55</span>
getData:function () {
? ?console.log(this.$refs.dataNum.dataset.num);
}但是vue 不推薦這樣做,你可以這樣做
<span ?@click="getData('21')">55</span>
getData:function (num) {
? ?console.log(num);
}像這樣的(關(guān)于input中的屬性),一般可以放到name空間里,可以通過(guò)$attr屬性獲取相應(yīng)的值
<input ref="dataNum" name="21" :value="value1"></input>
<span @click="getData">獲取name</span>
getData:function () {
? ?console.log(this.$refs.dataNum.$attr.name);
}但是這樣為何不直接傳進(jìn)去狀態(tài)值呢
<input v-modle="value1"></input>
<span @click="getData('21')">獲取name</span>
getData:function (num) {
? ?console.log(num);
}當(dāng)然操作dom還可以通過(guò)e.target操作獲取,還是不推薦
<span data-num="21" @click="getData">55</span>
getData:function (e) {
? ?console.log(e.target.getAttribute('data-num'));
}vue自定義屬性的設(shè)置及獲取
寫多了小程序,再寫vue,在寫方法傳值的時(shí)候就自然而然的就想要去使用自定義屬性,既簡(jiǎn)單又方便。
小程序中設(shè)置自定義屬性及獲取
那么在小程序中的標(biāo)簽自定義屬性的寫法及獲取如下:
小程序:
①.標(biāo)簽設(shè)置自定義屬性
<image catchtap="guanbiFn" data-which="look" src="../images/guanbia.png" class="guanbiImg"/>
//就想這樣直接用data-自定義屬性名,然后賦上你所需要的值就可以
②、獲取標(biāo)簽設(shè)置的自定義屬性值
? guanbiFn(e){
? ?? ??? ?console.log("e.currentTarget.dataset.which");//look
? }
? //這樣就直接獲取到了vue中設(shè)置自定義屬性及獲取
那么在使用vue去寫項(xiàng)目的時(shí)候,再想用這一套明顯是有點(diǎn)不合適的。
vue中設(shè)置動(dòng)態(tài)屬性是要用v-modal的,也可以簡(jiǎn)寫為半角冒號(hào)":",那么也就是說(shuō)我們想要設(shè)置自定義屬性也還是得用這個(gè)語(yǔ)法才可以。
Vue:
①、標(biāo)簽設(shè)置自定義屬性
<span :index="index" :show="item.IsShow" ref="dataSelf" @click="selectBrand" v-for="(item,index) in getChoiceData.BrandList">{{item.Name}}</span>
//看上面一行代碼,有循環(huán),循環(huán)中用了內(nèi)容和下標(biāo),那么我想設(shè)置有關(guān)于下標(biāo)數(shù)值和某一個(gè)內(nèi)容的自定義屬性,方便在方法中去使用,這就是一種方法,(當(dāng)然了除了這種傳值其實(shí)也可以直接形參傳值的那種方法去獲取也可以)。
②、獲取標(biāo)簽設(shè)置的自定義屬性值
vue獲取的時(shí)候有兩種方法:
?? ? ?selectBrand(e) {
?? ? ??? ??? ?//方法一:操作Dom
?? ? ??? ??? ?console.log(this.$refs.dataSelf.dataset.index);//獲取到我們循環(huán)中的下標(biāo)值
?? ? ??? ??? ?//方法二:通過(guò)e.target.getAttribute
?? ? ??? ??? ?console.log(e.target.getAttribute('show'));//獲取到循環(huán)中的IsShow的值
?? ? ?}總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue在echarts?tooltip中添加點(diǎn)擊事件案例詳解
本文主要介紹了Vue項(xiàng)目中在echarts?tooltip添加點(diǎn)擊事件的案例詳解,代碼具有一定的價(jià)值,感興趣的小伙伴可以來(lái)學(xué)習(xí)一下2021-11-11
element?select必填項(xiàng)驗(yàn)證回顯問(wèn)題的解決
本文主要介紹了element?select必填項(xiàng)驗(yàn)證回顯問(wèn)題的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
Vue Element前端應(yīng)用開發(fā)之前端API接口的封裝
對(duì)整個(gè)系統(tǒng)來(lái)說(shuō),一般會(huì)有很多業(yè)務(wù)對(duì)象,而每個(gè)業(yè)務(wù)對(duì)象的API接口又有很多。我們這個(gè)VUE+Element 前端應(yīng)用就是針對(duì)ABP框架的業(yè)務(wù)對(duì)象,因此前端的業(yè)務(wù)對(duì)象接口也是比較統(tǒng)一的,那么可以考慮在前端中對(duì)后端API接口調(diào)用進(jìn)行封裝,引入ES6的方式進(jìn)行前端API的抽象簡(jiǎn)化。2021-05-05
vue視頻播放插件vue-video-player的具體使用方法
這篇文章主要介紹了vue視頻播放插件vue-video-player的具體使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

