vue 提示框modal 手寫Vue彈窗Modal

2021-10-13 01:54:06 字數 1974 閱讀 4019

vue作為最近最炙手可熱的前端框架,其簡單的入門方式和功能強大的api是其優點。而同時因為其api的多樣性和豐富性,所以他的很多開發方式就和一切基於元件的react不同,如果沒有對vue的api(有一些甚至文件都沒提到)有乙個全面的了解,那麼在開發和設計乙個元件的時候有可能就會繞乙個大圈子,所以我非常推薦各位在學習vue的時候先要對vue核心的所有api都有乙個了解。這篇文章我會從實踐出發,遇到一些知識點會順帶總結一下。文章很長,一次看不完可以先收藏,如果你剛入門vue,那麼相信這篇文章對你以後的提公升絕對有幫助

進入正題,我相信不論什麼專案幾乎都會有乙個必不可少的功能,就是使用者操作反饋、或者提醒.像這樣(簡單的乙個demo)

目標一實現乙個簡單的反饋通知,可以通過方法在元件內直接呼叫。比如vue.$confirm()

首先,我們來實現通知元件,相信這個大部分人都能寫出來乙個像模像樣的元件,不囉嗦,直接上**

:class="type"

class="eqc-notifier">

:class="iconclass"

class="icon fl"/>

} export default ,

methods: eqc-notifier close`

dialog = null

}).$mount()

function success(msg) )的方式去建立vue的例項了,同時通過該方式建立的例項,會有元件定義裡面的所有屬性。

在建立例項之後,vm.$mount()手動將元件掛載到dom上面,這樣我們可以不依賴vue元件樹來輸出dom片段,達到自由顯示通知的效果。

擴充套件:說一下$mount,我們也許很多專案的主檔案是這樣的

new vue(

config.attrs =

config.class =

config.class =

config.domprops = , content)

render(h) ).then(_ => ).catch()

寫的有點多,其實還可以擴充套件出好多技巧,比如模態框中傳乙個完整的元件,並展示出來,簡單地寫一下,其實只需改動一點

import model from './model.vue'

const modelconstructor = vue.extend(model)

const modelviewstyle = (obj) => ).then(data =>

if (data === 1) else {

this.goback()

這裡我們用了mixins,最後最後再簡單地介紹一下mixins,extend,extends的區別

**- vue.extend使用基礎 vue 構造器,建立乙個「子類」。引數是乙個包含元件選項的物件。

mixins 選項接受乙個混入物件的陣列。這些混入例項物件可以像正常的例項物件一樣包含選項,他們將在 vue.extend() 裡最終選擇使用相同的選項合併邏輯合併。舉例:如果你的混入包含乙個鉤子而建立元件本身也有乙個,兩個函式將被呼叫。mixin 鉤子按照傳入順序依次呼叫,並在呼叫元件自身的鉤子之前被呼叫。

注意(data混入元件資料優先鉤子函式將混合為乙個陣列,混入物件的鉤子將在元件自身鉤子之前呼叫,值為物件的選項,例如 methods, components 和 directives,將被混合為同乙個物件。兩個物件鍵名衝突時,取元件物件的鍵值對。)

extends 允許宣告擴充套件另乙個元件(可以是乙個簡單的選項物件或建構函式),而無需使用 vue.extend。這主要是為了便於擴充套件單檔案元件。這和 mixins 類似。**

概括extend用於建立vue例項

mixins可以混入多個mixin,extends只能繼承乙個

mixins類似於面向切面的程式設計(aop),extends類似於物件導向的程式設計

優先順序vue.extend>extends>mixins

總結到這裡,關於如何實現通過方法呼叫乙個vue元件內容以及用到的一些api以及原理就差不多了,**如有不懂得地方可以隨時提問,歡迎交流。

vue 提示框modal 手寫Vue彈窗Modal

vue作為最近最炙手可熱的前端框架,其簡單的入門方式和功能強大的api是其優點。而同時因為其api的多樣性和豐富性,所以他的很多開發方式就和一切基於元件的react不同,如果沒有對vue的api 有一些甚至文件都沒提到 有乙個全面的了解,那麼在開發和設計乙個元件的時候有可能就會繞乙個大圈子,所以我非...

自己動手寫jQuery外掛程式 Tip(提示框)

對jquery相信很多同學和我一樣平時都是拿來主義,沒辦法,要怪只能怪jquery太火了,各種外掛程式基本能滿足平時的要求。但是這畢竟不是長久之道,古人云 授之以魚,不如授之以漁 為了方便之前沒有接觸的同學,先來回顧一下jquery的外掛程式機制吧。1 新增check和uncheck外掛程式 2jq...

阻塞提示框

函式原型 void ceikonenv alertwin const tdesc amsg void ceikonenv alertwin const tdesc amsg1,const tdesc amsg2 static void ceikonenv infowinl const tdesc a...