摘要:的組件拆解之的中的組件在目錄下。這個(gè)組件核心部分是分別涉略了。
Element的組件拆解之Tooltip
element ui的中的 toolpic組件 在 packages/tooltip目錄下。
這個(gè)組件核心部分是
toolpic 分別涉略了?!秏ain.js vue-popper.js popup.js vdom.js dom.js》js文件
核心用到到j(luò)s差不多就是main.js,vue-popper.js
其他都是element封裝好都調(diào)用都公共方法
vdom.js
是找到this.$slots.default中都vode
因?yàn)閠his.$slots.default默認(rèn)返回都是一個(gè)數(shù)組
dom.js
是添加樣式,檢測(cè)是否有這個(gè)樣式,獲取樣式等一些方法, 對(duì)ie上對(duì)兼容等 有興趣可以看看
main.js:代碼
//main.js
import Popper from "element-ui/src/utils/vue-popper";
export default {
mixins: [Popper], render (h) { // 初始化beforeCreate中vue的html this.newVue.node = ({ this.show() }} onMouseLeave={() => { this.hide() }} v-show={this.showPopper} > {this.$slots.default}) // 拋出自定義內(nèi)容做固定展示在html上 return this.$slots.default[0] }, beforeCreate () { // 創(chuàng)建一個(gè)新的Vue對(duì)象 this.newVue = new Vue({ data: {node: ""}, render(h){ return this.node }, }).$mount() }, mounted(){ this.referenceElm = this.$el; this.referenceElm.addEventListener("mouseenter",()=>{this.show()}) this.referenceElm.addEventListener("mouseleave",()=>{this.hide()}) }, methods: { show(){ console.log("經(jīng)過(guò)啦") this.showPopper = true }, hide() { console.log("離開(kāi)啦") this.showPopper = false } }
}
在生命周期beforeCreate中創(chuàng)建一個(gè)新對(duì)vue對(duì)象,
通過(guò)render函數(shù)初始化HTML 然后 return 一個(gè) 對(duì)象
例如:
render中return的就是
這快內(nèi)容
vue-popper.js代碼: 在這個(gè)文件的代碼核心部分,elementUI也是用npm庫(kù)里面的popper.js去完成 官方api再此 popper.js 我這邊已經(jīng)黏貼了飛機(jī)票
簡(jiǎn)化后的vue-popper.js。
import popperJs from "popper.js";
export default {
data() { return { showPopper: false } }, watch: { showPopper(val) { val ? this.createpopper() : this.destroyPopper(); } }, methods: { createpopper(){ document.body.appendChild(this.$refs.popper); new popperJs(this.referenceElm,this.$refs.popper) } }
}
這是最簡(jiǎn)單調(diào)用方式實(shí)現(xiàn)了一個(gè)toolpic
鼠標(biāo)經(jīng)過(guò)和離開(kāi)會(huì)展示這個(gè)toolpic
總結(jié)
1.通過(guò)main.js中生成HTML并在mounted生命周期中添加各種鼠標(biāo)事件,改變showPopper的值
2.同時(shí)把當(dāng)前對(duì)this.$el賦值給this.referenceElm
3.在vue-popper.js對(duì)showPopper的值進(jìn)行監(jiān)聽(tīng),一旦showPopper的值為true時(shí)執(zhí)行this.createpopper(),反之則摧毀
4.在this.createpopper()函數(shù)中popper組件需要2個(gè)參數(shù)然后把 this.$refs.popper和 this.referenceElm傳過(guò)去就好了
PC:原聲組件對(duì)很多細(xì)節(jié)做了處理我只是簡(jiǎn)單對(duì)還原對(duì)組件功能,若想知細(xì)節(jié)請(qǐng)去官網(wǎng)下載elementUI
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/53624.html
摘要:的組件拆解之的中的組件在目錄下。這個(gè)組件核心部分是分別涉略了。 Element的組件拆解之Tooltipelement ui的中的 toolpic組件 在 packages/tooltip目錄下。 這個(gè)組件核心部分是 showImg(https://segmentfault.com/img/bVbnFjF?w=332&h=214); toolpic 分別涉略了。《main.js vue...
摘要:的組件拆解之的中的組件在目錄下。這個(gè)組件核心部分是分別涉略了。 Element的組件拆解之Tooltipelement ui的中的 toolpic組件 在 packages/tooltip目錄下。 這個(gè)組件核心部分是 showImg(https://segmentfault.com/img/bVbnFjF?w=332&h=214); toolpic 分別涉略了?!秏ain.js vue...
摘要:比如我們對(duì)調(diào)與會(huì)怎樣我們得到了三個(gè)不同類(lèi)目近個(gè)月的趨勢(shì),之所以是折線圖,因?yàn)閳D表的維度軸列是連續(xù)的。在正式介紹標(biāo)記區(qū)域前,先理解一下為何會(huì)發(fā)生這種轉(zhuǎn)變表格類(lèi)組件是雙維度組件,折線圖是單維度組件。 1. 引言 Tableau 探索式分析功能非常強(qiáng)大,各種功能組合似乎有著無(wú)限的可能性。 今天筆者會(huì)分析這種探索式模型解題思路,一起看看這種探索式分析功能是如何做到的。 2. 精讀 要掌握探索式...
摘要:組件結(jié)構(gòu)同組件結(jié)構(gòu)通過(guò)方法獲取元素的大小及其相對(duì)于視口的位置,之后對(duì)提示信息進(jìn)行定位??梢杂脕?lái)進(jìn)行一些復(fù)雜帶校驗(yàn)的彈窗信息展示,也可以只用于簡(jiǎn)單信息的展示??梢酝ㄟ^(guò)屬性來(lái)顯示任意標(biāo)題,通過(guò)屬性來(lái)修改顯示區(qū)域的寬度。 手把手教你擼個(gè)vue2.0彈窗組件 在開(kāi)始之前需要了解一下開(kāi)發(fā)vue插件的前置知識(shí),推薦先看一下vue官網(wǎng)的插件介紹 預(yù)覽地址 http://haogewudi.me/k...
閱讀 2983·2023-04-25 22:16
閱讀 2186·2021-10-11 11:11
閱讀 3272·2019-08-29 13:26
閱讀 616·2019-08-29 12:32
閱讀 3438·2019-08-26 11:49
閱讀 3027·2019-08-26 10:30
閱讀 1975·2019-08-23 17:59
閱讀 1545·2019-08-23 17:57