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

您的位置:首頁技術文章
文章詳情頁

Vue 構造選項 - 進階使用說明

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

Directive指令:減少DOM操作的重復

Vue實例/組件用于數據綁定、事件監聽、DOM更新

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

減少重復

自定義指令

兩種聲明方式

方法一:聲明一個全局指令

Vue.directive(’x’, directiveOptions)

方法二:聲明一個局部指令

在options里寫,只能被那個Vue實例/組件使用

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

關于directiveOptions

directiveOptions是個對象,里面有五個函數屬性

bind(el, info, vnode, oldVnode)★

類似created,只調用一次,指令第一次綁定到元素時調用。

參數都是vue給我們的

① el綁定指令的那個元素

② info是個對象,我們想要的信息基本都在里面

③ vnode虛擬節點

④ oldVnode之前的虛擬節點

inserted(參數同上)★

類似mounted,被綁定元素插入父節點時調用 (僅保證父節點存在,但不一定已被插入文檔中)。

update(參數同上)

類似 updated

componentUpdated(參數同上)

用得不多,見文檔

unbind(參數同上)★

類似destroyed,當元素要消亡時調用。

bind示例

Mixins混入:復制

Mixins示例

減少重復

directives的作用是減少DOM操作的重復

mixins的作用是減少data、methods、鉤子的重復

options里的構造選項都可以先放到一個js文件,之后哪個實例/組件需要就導入并且用mixins使用就行。

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

全局的mixins:不推薦

Extends 繼承、擴展

extends是比mixins更抽象一點的封裝

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

不過實際工作中用得很少

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

provide & inject:提供&注入

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

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

示例

總結

directive指令

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

局部用options.directives

作用是減少DOM操作相關重復代碼

mixins混入

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

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

作用是減少options里的重復

extends繼承/擴展

全局用Vue.extend({.})

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

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

provide | inject提供和注入

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

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

補充知識:表單和 v-model

思維導圖

Vue 構造選項 - 進階使用說明

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

<template> <div id='app'> 登錄 <form @submit.prevent='onSubmit'> //.prevent阻止默認動作 <label><span>用戶名</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 構造選項 - 進階使用說明

v-model

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

上面的v-model等價于

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

自己封裝一個

<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 構造選項 - 進階使用說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
主站蜘蛛池模板: 成人网mm视频在线观看 | 一级片在线观看视频 | 在线欧美日韩精品一区二区 | 亚洲高清国产拍精品影院 | 91短视频黄色 | 岛国片欧美一级毛片 | 久久久久亚洲精品影视 | 国产区成人综合色在线 | 日韩在线观看一区二区不卡视频 | 亚洲高清二区 | 欧美日本一区二区三区生 | 中日韩欧美一级毛片 | 精品夜夜春夜夜爽久久 | 日韩精品a在线视频 | 日韩免费毛片全部不收费 | 伊人久久免费视频 | 爱爱爱免费视频观看在线网站 | 久草视频在线看 | 国产精品爽爽影院在线 | 亚洲精品网站在线 | 国产三级做爰在线观看视频 | 免费看三级全黄 | 欧美日韩乱码毛片免费观看 | 看一级特黄a大片国产 | 欧美黄色第一页 | 亚洲国产综合精品中文第一区 | 国产狂喷白浆在线观看视频 | 韩国中文字幕 | 日韩小视频在线播放 | 香蕉大黄香蕉在线观看 | 久久久久国产一级毛片高清板 | 久久久久国产精品免费免费不卡 | 羞羞答答91麻豆网站入口 | 成人在线观看网站 | 亚洲国产美女精品久久 | 国产免费网址 | 中国女警察一级毛片视频 | 中文字幕永久在线视频 | 999热成人精品国产免 | 免费一级毛片在线播放 | 一区二区三区在线播放 |