日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ElementUI的组件拆解之Tooltip

發布時間:2025/3/21 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ElementUI的组件拆解之Tooltip 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


element ui的中的 toolpic組件 在 packages/tooltip目錄下。

這個組件核心部分是

toolpic 分別涉略了。《main.js vue-popper.js popup.js vdom.js dom.js》等js文件

核心用到到js差不多就是main.js,vue-popper.js

其他都是element封裝好都調用都公共方法

vdom.js

是找到this.$slots.default中都vode

因為this.$slots.default默認返回都是一個數組

dom.js

是添加樣式,檢測是否有這個樣式,獲取樣式等一些方法, 對ie上對兼容等 有興趣可以看看

main.js:代碼

//main.js import Popper from 'element-ui/src/utils/vue-popper'; export default {mixins: [Popper],render (h) {// 初始化beforeCreate中vue的htmlthis.newVue.node = (<divref="popper"onMouseenter={() => {this.show()}}onMouseLeave={() => {this.hide()}}v-show={this.showPopper}>{this.$slots.default}</div>) // 拋出自定義內容做固定展示在html上return this.$slots.default[0]},beforeCreate () {// 創建一個新的Vue對象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('經過啦')this.showPopper = true},hide() {console.log('離開啦')this.showPopper = false}} } 復制代碼

main.js進行了簡化

在生命周期beforeCreate中創建一個新對vue對象,

通過render函數初始化HTML 然后 return 一個 對象

例如:

<el-tooltip class="item" effect="dark" content="Top Left 提示文字" placement="top-start"><el-button>上左</el-button></el-tooltip>復制代碼

render中return的就是

<el-button>上左</el-button>復制代碼

這快內容

vue-popper.js代碼: 在這個文件的代碼核心部分,elementUI也是用npm庫里面的popper.js去完成 官方api再此 我這邊已經黏貼了飛機票

簡化后的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)}} }復制代碼

這是最簡單調用方式實現了一個toolpic

鼠標經過和離開會展示這個toolpic

總結

1.通過main.js中生成HTML并在mounted生命周期中添加各種鼠標事件,改變showPopper的值

2.同時把當前對this.$el賦值給this.referenceElm

3.在vue-popper.js對showPopper的值進行監聽,一旦showPopper的值為true時執行this.createpopper(),反之則摧毀

4.在this.createpopper()函數中popper組件需要2個參數然后把 this.$refs.popper和 this.referenceElm傳過去就好了

PS:只是簡單還原了這個功能,具體細節麻煩請下載elementUI


轉載于:https://juejin.im/post/5c480d43e51d4551e9610111

總結

以上是生活随笔為你收集整理的ElementUI的组件拆解之Tooltip的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜一级在线 | 亚洲欧美日韩国产综合 | 久久夜色网 | 视频一区二区不卡 | 精品国产一区二区在线观看 | 久久久久久电影 | 亚洲精品综合在线 | 日韩精品一区二区av | 国产五月天婷婷 | 涩漫天堂| 国产高清精品软件丝瓜软件 | 国内一级黄色片 | 在线一区视频 | 五月婷婷激情网 | 一区二区播放 | 欧美黑人多人双交 | 欧美老女人性视频 | 国产精品成人免费看片 | 国产伦精品一区二区三区网站 | 男人资源网站 | 中文字幕五区 | 亚洲精品在线影院 | 免费观看91视频 | 狠狠v欧美v日韩v亚洲ⅴ | 日韩逼 | 成熟人妻av无码专区 | 日本一本高清视频 | 五月天色视频 | 精品深夜av无码一区二区老年 | 激情国产精品 | 国内自拍视频网站 | 黄色三级在线播放 | 欧美激情 国产精品 | 欧美日韩午夜激情 | 在线你懂| 色香色香欲天天天影视综合网 | 97人人爱| 华人在线视频 | 免费黄色在线网址 | 欧美性插视频 | 亚洲最大中文字幕 | 国产一区在线看 | 四虎国产精品永久在线国在线 | 双性娇喘浑圆奶水h男男漫画 | 天天艹av | 国产精品www色诱视频 | 国产一区二区三区高清 | 日本三级一区 | 99热在线观看免费 | 国产香蕉尹人视频在线 | av青青草原 | 天天草天天草 | 精品在线免费观看视频 | 日本小视频网站 | 国产福利资源在线 | 亚洲素人在线 | 国产三级av在线 | 日韩中文字幕av在线 | 亚洲情在线 | 国产尤物在线视频 | 国产一区精品视频 | 天天看视频 | 毛片哪里看 | 香蕉视频性 | 国产精品毛片一区二区在线看舒淇 | 中文字幕无码不卡免费视频 | 久久香蕉影视 | 精品免费一区二区 | 乐播av一区二区三区 | 国产成人免费看 | av在线资源网 | 伊人伊人伊人伊人 | 精品久久久久久久久久久aⅴ | www.欧美成人 | 欧美激情不卡 | 日本偷偷操 | 日本三级视频网站 | 亚洲AV综合色区国产精品天天 | 少妇日韩 | 国产精品11| 日韩欧美理论片 | 中文字幕第八页 | 欧美精品一区二区在线观看 | 日韩久久久精品 | 任你操精品视频 | 蜜桃视频色 | 欧美黑人xxx | 日韩精品一区二区三区国语自制 | 久操热久操 | 性奶老妇 视频 | 国产人成视频在线观看 | 色伊人 | 深夜的私人秘书 | 加勒比精品 | 久久香蕉av | 国产黑丝一区 | 91精品久久久久久久久中文字幕 | www.白虎| 夜夜看 |