成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Tooltip組件拆解

marser / 1492人閱讀

摘要:的組件拆解之的中的組件在目錄下。這個(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

相關(guān)文章

  • Tooltip組件拆解

    摘要:的組件拆解之的中的組件在目錄下。這個(gè)組件核心部分是分別涉略了。 Element的組件拆解之Tooltipelement ui的中的 toolpic組件 在 packages/tooltip目錄下。 這個(gè)組件核心部分是 showImg(https://segmentfault.com/img/bVbnFjF?w=332&h=214); toolpic 分別涉略了。《main.js vue...

    miya 評(píng)論0 收藏0
  • Tooltip組件拆解

    摘要:的組件拆解之的中的組件在目錄下。這個(gè)組件核心部分是分別涉略了。 Element的組件拆解之Tooltipelement ui的中的 toolpic組件 在 packages/tooltip目錄下。 這個(gè)組件核心部分是 showImg(https://segmentfault.com/img/bVbnFjF?w=332&h=214); toolpic 分別涉略了?!秏ain.js vue...

    khlbat 評(píng)論0 收藏0
  • 精讀《Tableau 探索式模型》

    摘要:比如我們對(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. 精讀 要掌握探索式...

    curried 評(píng)論0 收藏0
  • 手把手教你擼個(gè)vue2.0彈窗組件

    摘要:組件結(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...

    mrli2016 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<