欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue.js如何獲取data-*的值

 更新時(shí)間:2022年09月21日 10:52:31   作者:大前端工程師  
這篇文章主要介紹了Vue.js如何獲取data-*的值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

data-*

這個(gè)屬性熟悉JS的小伙伴都知道,data-*是一個(gè)自定義屬性,它的功能是視圖層往js傳遞我們想要傳的數(shù)據(jù)。我們的JS可以控制視圖層,但是我們往往需要用戶操作視圖層,邏輯層也能夠獲取用戶的交互值,這個(gè)時(shí)候我們就需要data-*屬性了

獲取普通數(shù)據(jù)

我們的js數(shù)據(jù)類型大體上可分為,數(shù)字類型,字符類型,布爾值類型,對(duì)象類型。其實(shí)還有undefined和null

我把數(shù)字類型,字符類型,布爾值類型稱之為普通數(shù)據(jù)類型,我們接下來(lái)分別演示

靜態(tài)獲取

靜態(tài)獲取指的是我們的data-*是寫死的,不是動(dòng)態(tài)的

html代碼

<div id="app">
	<div :style="myStyle" data-num=1 data-str="hello" data-bool=true @click="click($event)"></div>
</div>

js代碼

var app=new Vue({
	el:'#app',
	//myStyle是樣式對(duì)象
	data() {
		return{
			myStyle:{
				background:"red",
				width:100+"px",
				height:100+"px"
			}
		}
	},
	methods:{
		click:function(e){
		    //e.target.dataset可以獲取數(shù)值
			console.log(e.target.dataset)
		}
	}
})

點(diǎn)擊紅色塊之后的效果:

注意看右邊的數(shù)據(jù),返回的全是字符串??墒俏覀儌鬟f的數(shù)值有的不是字符串,但是全部轉(zhuǎn)化成了字符串了。我們只能后續(xù)進(jìn)行類型轉(zhuǎn)化了

動(dòng)態(tài)獲取

動(dòng)態(tài)獲取數(shù)據(jù)指的是我們獲取的數(shù)據(jù)是動(dòng)態(tài)的,通常我們喜歡用在v-for中,用于判斷用戶點(diǎn)擊列表為第多少項(xiàng)

html

<div id="app">
	<ul>
		<li v-for="(item,index) in datalist" :data-op="index" @click="click($event)">{{item.name}}</li>
	</ul>
</div>

js

var app=new Vue({
	el:'#app',
	data() {
		return{
			datalist:[
				{
					id:0,
					name:'小明',
				},
				{
					id:1,
					name:'小紅',
				},
				{
					id:2,
					name:'小剛',
				}
			]
		}
	},
	methods:{
		click:function(e){
			let {op}=e.target.dataset
			console.log("選中了第"+(parseInt(op)+1)+"項(xiàng)")
		}
	}
})

點(diǎn)擊li之后的效果

獲取對(duì)象數(shù)據(jù)

對(duì)象數(shù)據(jù)與普通數(shù)據(jù)不同,它們需要使用JSON.stringfy進(jìn)行字符串化

動(dòng)態(tài)獲取

HTML

<div id="app">
	<ul>
		<li v-for="(item) in datalist" :data-item="JSON.stringify(item)" @click="click($event)">
			{{item.name}}</li>
	</ul>
</div>

js

var app = new Vue({
	el: '#app',
	data() {
		return {
			datalist: [{
					id: 0,
					name: '小明',
				},
				{
					id: 1,
					name: '小紅',
				},
				{
					id: 2,
					name: '小剛',
				}
			]
		}
	},
	methods: {
		click: function(e) {
			let {
				item
			} = e.target.dataset
			item = JSON.parse(item)
			console.log(item)
		}
	}
})

如果遇到特殊字符報(bào)錯(cuò)的話,嘗試修改JS代碼如下:

click: function(e) {
	let {
		item
	} = e.target.dataset
	item=encodeURIComponent(item)
	item = JSON.parse(decodeURIComponent(item))
	console.log(item)
}

進(jìn)行編碼和解碼序列化操作就好了

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue完成項(xiàng)目后,打包成靜態(tài)文件的方法

    vue完成項(xiàng)目后,打包成靜態(tài)文件的方法

    今天小編就為大家分享一篇vue完成項(xiàng)目后,打包成靜態(tài)文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • vue-cli3項(xiàng)目配置eslint代碼規(guī)范的完整步驟

    vue-cli3項(xiàng)目配置eslint代碼規(guī)范的完整步驟

    這篇文章主要給大家介紹了關(guān)于vue-cli3項(xiàng)目配置eslint代碼規(guī)范的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • vue項(xiàng)目history模式刷新404問(wèn)題解決辦法

    vue項(xiàng)目history模式刷新404問(wèn)題解決辦法

    這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目history模式刷新404問(wèn)題的解決辦法,需要的朋友可以參考下
    2023-11-11
  • elementui中樹形表格切換展開不同層級(jí)的示例代碼

    elementui中樹形表格切換展開不同層級(jí)的示例代碼

    這篇文章主要介紹了elementui中樹形表格切換展開不同層級(jí),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 淺談Vue項(xiàng)目骨架屏注入實(shí)踐

    淺談Vue項(xiàng)目骨架屏注入實(shí)踐

    這篇文章主要介紹了淺談Vue項(xiàng)目骨架屏注入實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Vue如何獲取表單數(shù)據(jù)

    Vue如何獲取表單數(shù)據(jù)

    我們?cè)谧龊笈_(tái)管理系統(tǒng)里面有非常多的表單需求,下面這篇文章主要給大家介紹了關(guān)于Vue如何獲取表單數(shù)據(jù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • vue中使用svg封裝全局消息提示組件

    vue中使用svg封裝全局消息提示組件

    這篇文章主要為大家詳細(xì)介紹了vue中使用svg封裝全局消息提示組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue如何獲取元素高度總是不準(zhǔn)確的問(wèn)題

    Vue如何獲取元素高度總是不準(zhǔn)確的問(wèn)題

    這篇文章主要介紹了Vue如何獲取元素高度總是不準(zhǔn)確的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue WatchEffect函數(shù)創(chuàng)建高級(jí)偵聽器

    Vue WatchEffect函數(shù)創(chuàng)建高級(jí)偵聽器

    watchEffect傳入的函數(shù)會(huì)被立即執(zhí)行一次,并且在執(zhí)行的過(guò)程中會(huì)收集依賴;其次,只有收集的依賴發(fā)生變化時(shí),watchEffect傳入的函數(shù)才會(huì)再次執(zhí)行
    2023-03-03
  • vue+element搭建后臺(tái)小總結(jié) el-dropdown下拉功能

    vue+element搭建后臺(tái)小總結(jié) el-dropdown下拉功能

    這篇文章主要為大家詳細(xì)介紹了vue+element搭建后臺(tái)小總結(jié),el-dropdown下拉功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09

最新評(píng)論