當前位置: 泰州之窗首頁 > 區塊鏈 > 正文

你可能沒用過的v-model 時定制 prop 和 event

你可能沒用過的v-model 時定制 prop 和 event

大家可能在使用vue的時候已經很熟悉v-model指令了,但是有定制過prop和event嗎?下面咱們來簡單的說一說。vue允許一個自定義組件在使用 v-model 時定制 prop 和 event。

大家可能在使用vue的時候已經很熟悉v-model指令了,但是有定制過prop和event嗎?下面咱們來簡單的說一說。

vue允許一個自定義組件在使用 v-model 時定制 prop 和 event。默認情況下,一個組件上的 v-model 會把 value 用作 prop 且把 input 用作 event,但是一些輸入類型比如單選框和復選框按鈕可能想使用 value prop 來達到不同的目的。使用 model 選項可以回避這些情況產生的沖突。

下面通過src引入vue.js文件的方式來簡單實現一下:

<!DOCTYPE html>

<html lang="zh-CN">

<head>

<meta charset="UTF-8">

<title>v-model</title>

<meta name="viewport" content="width=device-width, initial-scale=1.0">

</head>

<body>

<div id="app">

<my-input v-model="isChecked" value="some value">喜歡學習vue</my-input>

</div>

</body>

</html>

<script src="./vue.js"></script>

<script>

Vue.component('my-input', {

template: `<div>

<input type="checkbox" :checked="check" @change="$emit('change',$event.target.checked)">

<slot></slot>

</div>`,

model: {

prop: 'check',

event: 'change'

},

props: {

value: String,

check: 0 // isChecked的值會傳遞給model指定prop 'check'

}

})

var app = new Vue({

el: '#app',

data: {

isChecked: 0

},

watch: {

isChecked: function(val) {

console.log('val', val); // 選中/取消選中checkbox會改變isChecked的值

}

}

})

</script>

通過手動選中/取消選中checkbox會觸發watch監聽,從而不斷打印isChecked的當前值。也可以在F12控制臺通過給app.isChecked = true/false,來查看checkbox選中和取消選中的效果。至此一個定制prop和event的示例已經完成~~~

最后給大家準備了一些前端資料分享給大家,如圖~

懇請大家幫忙轉發,然后關注走一走,私信我給大家發送資料鏈接~非常感謝~

推薦閱讀:蘋果x跟xr怎么選

[責任編輯:無]
正规男模特赚钱吗 天弘上证50指数a 网赚平台源码 股票究竟是赚的谁的钱 贵阳捉鸡麻将取舍技 永久固定公式规律出肖 华人策略博彩论坛 加导师微信赚钱是真的吗 10bet线上娱乐城百家乐 北京赛车pk10直播开奖 股票明天开盘吗