亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Vue 構(gòu)造選項(xiàng) - 進(jìn)階使用說(shuō)明

瀏覽:136日期:2022-12-06 17:52:24

Directive指令:減少DOM操作的重復(fù)

Vue實(shí)例/組件用于數(shù)據(jù)綁定、事件監(jiān)聽(tīng)、DOM更新

Vue指令主要目的就是原生DOM操作

減少重復(fù)

自定義指令

兩種聲明方式

方法一:聲明一個(gè)全局指令

Vue.directive(’x’, directiveOptions)

方法二:聲明一個(gè)局部指令

在options里寫(xiě),只能被那個(gè)Vue實(shí)例/組件使用

new Vue({ ..., directives:{ 'x':directiveOptions }})

關(guān)于directiveOptions

directiveOptions是個(gè)對(duì)象,里面有五個(gè)函數(shù)屬性

bind(el, info, vnode, oldVnode)★

類(lèi)似created,只調(diào)用一次,指令第一次綁定到元素時(shí)調(diào)用。

參數(shù)都是vue給我們的

① el綁定指令的那個(gè)元素

② info是個(gè)對(duì)象,我們想要的信息基本都在里面

③ vnode虛擬節(jié)點(diǎn)

④ oldVnode之前的虛擬節(jié)點(diǎn)

inserted(參數(shù)同上)★

類(lèi)似mounted,被綁定元素插入父節(jié)點(diǎn)時(shí)調(diào)用 (僅保證父節(jié)點(diǎn)存在,但不一定已被插入文檔中)。

update(參數(shù)同上)

類(lèi)似 updated

componentUpdated(參數(shù)同上)

用得不多,見(jiàn)文檔

unbind(參數(shù)同上)★

類(lèi)似destroyed,當(dāng)元素要消亡時(shí)調(diào)用。

bind示例

Mixins混入:復(fù)制

Mixins示例

減少重復(fù)

directives的作用是減少DOM操作的重復(fù)

mixins的作用是減少data、methods、鉤子的重復(fù)

options里的構(gòu)造選項(xiàng)都可以先放到一個(gè)js文件,之后哪個(gè)實(shí)例/組件需要就導(dǎo)入并且用mixins使用就行。

寫(xiě)在了共同東西里的東西被組件引用了之后,組件還可以覆蓋他們,Vue會(huì)智能合并

全局的mixins:不推薦

Extends 繼承、擴(kuò)展

extends是比mixins更抽象一點(diǎn)的封裝

如果你嫌寫(xiě)五次mixins麻煩,可以考慮extends一次

不過(guò)實(shí)際工作中用得很少

你可以使用Vue.extend或options.extends

provide & inject:提供&注入

祖先提供東西,后代注入東西

作用是大范圍、隔N代共享信息(data、methods等)

示例

總結(jié)

directive指令

全局用Vue.directive(’x’, {...})

局部用options.directives

作用是減少DOM操作相關(guān)重復(fù)代碼

mixins混入

全局用Vue.mixin({..})

局部用options.mixins: [mixin1, mixin2]

作用是減少options里的重復(fù)

extends繼承/擴(kuò)展

全局用Vue.extend({.})

局部用options.extends: {...}

作用跟mixins差不多,只是形式不同

provide | inject提供和注入

祖先提供東西,后代注入東西

作用是大范圍、隔N代共享信息

補(bǔ)充知識(shí):表單和 v-model

思維導(dǎo)圖

Vue 構(gòu)造選項(xiàng) - 進(jìn)階使用說(shuō)明

form 做表單一定要用 form+button組合

<template> <div id='app'> 登錄 <form @submit.prevent='onSubmit'> //.prevent阻止默認(rèn)動(dòng)作 <label><span>用戶(hù)名</span><input type='text' v-model='user.username'/> </label> <label><span>密碼</span><input type='password' v-model='user.password'/> </label> <button type='submit'>登錄 </button> </form> </div></template><script> export default { name: ’App’, data() { return { user: { username: ’’, password: ’’ }, x: ’’ } }, methods: { onSubmit() { console.log(this.user) } }, components: {} }</script>

Vue 構(gòu)造選項(xiàng) - 進(jìn)階使用說(shuō)明

v-model

<label><span>用戶(hù)名</span><input type='text' v-model='user.username'/></label>

上面的v-model等價(jià)于

<label><span>用戶(hù)名</span><input type='text' :value='user.username'@input = 'user.username = $event.target.value'/></label>

自己封裝一個(gè)

<template> <div class='red wrapper'> <input :value='value' @input='$emit(’input’,$event.target.value)'/> </div></template><script> export default { name: ’MyInput’, props: { value: { type: String } }, }</script><style scoped> .red { background: red; } .wrapper{ display: inline-block; }</style>

以上這篇Vue 構(gòu)造選項(xiàng) - 進(jìn)階使用說(shuō)明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 成人免费视频网址 | a级无毛片 | 制服丝袜国产在线 | 特级无码a级毛片特黄 | 2021年韩国r级理论片在线观看 | 国产91在线播放中文 | 毛片在线免费播放 | 日本在线观看免费看片 | 久久国产精品夜色 | 毛片毛片毛片毛片毛片毛片 | 国产亚洲精品bv在线观看 | 中文字幕久久久久久久系列 | 一区二区三区在线播放 | 她也啪97在线视频 | 拍拍视频免费观看网站在线观看 | 98国产精品永久在线观看 | 亚洲国产精品ⅴa在线观看 亚洲国产精品aaa一区 | 欧美日韩一级大片 | 永久免费观看午夜视频在线 | 点击进入毛片免费观看 | 小明永久视频免费播放 | 国产精品高清久久久久久久 | 欧美在线免费观看视频 | 日日摸夜夜添夜夜添欧美毛片 | 国产精品欧美一区二区在线看 | a级午夜毛片免费一区二区 a级午夜理论免费毛片 | 欧美性色福利视频在线观看 | 在线观看国产亚洲 | 黄色免费看看 | 91精品综合国产在线观看 | 国产r级在线观看 | 国产精品美女一区二区三区 | 久久综合亚洲一区二区三区 | 国产黄色a | 91福利视频免费 | 妞干网免费视频 | 国内精品久久久久久麻豆 | 中文字幕日本在线视频二区 | 成人国产精品一区二区网站 | 日本精品久久久中文字幕 | 成人h免费观看视频 |