最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決vue自定義全局消息框組件問(wèn)題

 更新時(shí)間:2019年11月22日 15:17:19   作者:一只沒(méi)有感情的小殺手  
這篇文章主要介紹了vue自定義全局消息框組件問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1.發(fā)現(xiàn)問(wèn)題

在進(jìn)行移動(dòng)端適配的時(shí)候,為了在各個(gè)型號(hào)的設(shè)備上能夠更好的提現(xiàn)結(jié)構(gòu)排版,決定采用rem布局。采用rem布局的時(shí)候html的字體font-size是有一個(gè)標(biāo)準(zhǔn)的。我這邊用的是750px的設(shè)計(jì)稿,就采用1rem = 100px。 

在使用的過(guò)程中會(huì)用到一些第三方UI組件,而第三方UI組件是以px單位為標(biāo)準(zhǔn)的。

使用時(shí)發(fā)現(xiàn):本來(lái)應(yīng)該細(xì)長(zhǎng)的提示語(yǔ)句變得很大!

最后發(fā)現(xiàn)可能是因?yàn)檫@個(gè)icon是繼承了html設(shè)定的font-size,嘗試加一些樣式上去還是無(wú)效。(如果rem布局上有直接更改第三方組件樣式成功的小伙伴歡迎告訴我喲?。?/p>

2.解決問(wèn)題

有一種方法是可以可以用 px2rem-loader 插件可以將第三方ui庫(kù)的px轉(zhuǎn)換成rem單位,我們?cè)趯?xiě)樣式的時(shí)候用px,這個(gè)插件會(huì)幫我們轉(zhuǎn)換為rem單位。(因?yàn)闀簳r(shí)只是一個(gè)提示框遇到這樣的問(wèn)題,不想大費(fèi)周章,所以決定暫時(shí)不用,以后再用吧嘿嘿?。?br />

自己寫(xiě)小組件,在網(wǎng)上沖浪了一會(huì),選了幾個(gè)小demo實(shí)現(xiàn)可以了下,確實(shí)比較好?。ú捎眠@個(gè)方法?。?br />

3.自定義全局消息組件

大概效果有點(diǎn)模仿 element-ui 中的提示樣式,反正最后效果圖如下:

vue-cli3中component下新建message文件夾,里面再建如下:

Message.vue源代碼如下:

<template>
 <transition name="fade"> <!--這個(gè)是動(dòng)畫(huà)的過(guò)渡效果-->
 <div class="message" :class="type" v-if="visible">
  <div class="content">
  <i class="icon-type iconfont" :class="'icon-'+type"></i>
  {{content}}
  <i v-if="hasClose" class="btn-close iconfont icon-close" @click="visible=false"></i>
  </div>
 </div>
 </transition>
</template>
 
<script>
export default {
 name: 'Message.vue',
 data () {
 return {
  content: '',
  time: 3000,
  visible: false,
  type: 'info', // 'info','warning','error','success'
  hasClose: false 
 }
 },
 mounted () {
 this.close()
 },
 methods: {
 close () {
  window.setTimeout(() => {
  this.visible = false
  }, this.time)
 }
 }
}
</script>
 
<style scoped lang="scss">
 /* 動(dòng)畫(huà)效果 淡入淡出 */
 .fade-enter-active, .fade-leave-active{
 transition: all 0.5s ease;
 }
 .fade-enter, .fade-leave-active{
 opacity: 0;
 }
 /* 不同的提示語(yǔ)的樣式 */
 .info, .icon-info{
 background-color: #DDDDDD;/*#f0f9eb*/
 color: #909399;
 }
 .success, .icon-success{
 background-color:#f0f9eb;
 color: #67C23A;
 }
 .warning, .icon-warning{
 background-color: #fdf6ec;
 color: #e6a23c;
 }
 .error, .icon-error{
 background-color: #fef0f0;
 color: #f56c6c;
 }
 .message {
 position: fixed;
 left: 50%;
 top: 10%;
 transform: translate(-50%, -50%);
 width:300px;
 height:30px;
 line-height: 30px;
 font-size: 16px;
 padding: 10px;
 border-radius: 5px;
 .content{
  width:100%;
  height:100%;
  text-align:left;
  .icon-type{
  margin:0 10px 0 30px;
  }
  .btn-close{
  font-size:20px;
  margin:0 0 0 70px;
  color:#ccc;
  }
 }
 }
 
</style>

index.js源代碼如下:

給Vue添加$my_message方法,判斷參數(shù),使用 $mount() 給組件手動(dòng)掛載參數(shù),然后將組件插入頁(yè)面中

import Vue from 'vue'
import Message from './Message.vue'
 
const MessageBox = Vue.extend(Message)
 
Message.install = function (options, type) {
 if (options === undefined || options === null) {
 options = {
  content: ''
 }
 } else if (typeof options === 'string' || typeof options === 'number') {
 options = {
  content: options
 }
 if (type !== undefined && options !== null) {
  options.type = type
 }
 }
 
 let instance = new MessageBox({
 data: options
 }).$mount()
 
 document.body.appendChild(instance.$el)
 
 Vue.nextTick(() => {
 instance.visible = true
 })
}
 
export default Message

main.js中:

// 在main.js里面全局引入 自定義的全局消息框組件
import Message from './components/message'
Vue.prototype.$my_message = Message.install

頁(yè)面中調(diào)用:

this.$my_message('你這個(gè)大笨豬吼吼吼!');
this.$my_message('你這個(gè)大笨豬吼吼吼!','success');
this.$my_message({
 content:'服務(wù)器連接失?。?, // 彈出的文字內(nèi)容
 time:5000,     // 彈出后多久消失
 type:'success',   // 彈出的消息類(lèi)型
 hasClose:true,   // 讓按鈕可以被使用,默認(rèn)按鈕是false不可以使用的
 
});

4.注意事項(xiàng)

本Demo中彈出的提示語(yǔ)句中的小圖標(biāo)是iconfont里面的。

總結(jié)

以上所述是小編給大家介紹的解決vue自定義全局消息框組件問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • vue3中vuex與pinia的踩坑筆記記錄

    vue3中vuex與pinia的踩坑筆記記錄

    Vuex是一個(gè)專(zhuān)為Vue.js應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式,它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測(cè)的方式發(fā)生變化,這篇文章主要給大家介紹了關(guān)于vue3中vuex與pinia踩坑的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • 用vuex寫(xiě)了一個(gè)購(gòu)物車(chē)H5頁(yè)面的示例代碼

    用vuex寫(xiě)了一個(gè)購(gòu)物車(chē)H5頁(yè)面的示例代碼

    本篇文章主要介紹了用vuex寫(xiě)了一個(gè)購(gòu)物車(chē)H5頁(yè)面的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Vue中scrollIntoView()方法詳解與實(shí)際運(yùn)用舉例

    Vue中scrollIntoView()方法詳解與實(shí)際運(yùn)用舉例

    這篇文章主要給大家介紹了關(guān)于Vue中scrollIntoView()方法詳解與實(shí)際運(yùn)用舉例的相關(guān)資料,該scrollIntoView()方法將調(diào)用它的元素滾動(dòng)到瀏覽器窗口的可見(jiàn)區(qū)域,需要的朋友可以參考下
    2023-12-12
  • vue實(shí)現(xiàn)可拖拽div大小的方法

    vue實(shí)現(xiàn)可拖拽div大小的方法

    這篇文章主要介紹了vue實(shí)現(xiàn)可拖拽div大小的方法,可封裝為全局方法在項(xiàng)目中所需要地方直接調(diào)用(mixins),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • mint-ui在vue中的使用示例

    mint-ui在vue中的使用示例

    Mint UI 是 由餓了么前端團(tuán)隊(duì)推出的 一個(gè)基于 Vue.js 的移動(dòng)端組件庫(kù),這篇文章主要介紹了mint-ui在vue中的使用示例,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下
    2018-04-04
  • Vue?動(dòng)畫(huà)效果、過(guò)渡效果的示例代碼

    Vue?動(dòng)畫(huà)效果、過(guò)渡效果的示例代碼

    這篇文章主要介紹了Vue?動(dòng)畫(huà)效果、過(guò)渡效果,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • 手把手教你在vue中使用three.js

    手把手教你在vue中使用three.js

    最近在vue3項(xiàng)目中通過(guò)three.js實(shí)現(xiàn)了實(shí)際的三維效果demo,下面這篇文章主要給大家介紹了關(guān)于在vue中使用three.js的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • 基于Vue3+TypeScript的全局對(duì)象的注入和使用詳解

    基于Vue3+TypeScript的全局對(duì)象的注入和使用詳解

    這篇文章主要介紹了基于Vue3+TypeScript的全局對(duì)象的注入和使用,本篇隨筆主要介紹一下基于Vue3+TypeScript的全局對(duì)象的注入和使用,需要的朋友可以參考下
    2022-09-09
  • 淺談vue異步數(shù)據(jù)影響頁(yè)面渲染

    淺談vue異步數(shù)據(jù)影響頁(yè)面渲染

    今天小編就為大家分享一篇淺談vue異步數(shù)據(jù)影響頁(yè)面渲染,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • Vue中的Object.defineProperty全面理解

    Vue中的Object.defineProperty全面理解

    這篇文章主要介紹了Vue中的Object.defineProperty全面理解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04

最新評(píng)論

新郑市| 邮箱| 玉山县| 商河县| 尼玛县| 桓台县| 聂拉木县| 资兴市| 甘孜县| 英超| 盱眙县| 五莲县| 砚山县| 伊金霍洛旗| 汽车| 娱乐| 定西市| 永清县| 虹口区| 甘南县| 玉田县| 盘山县| 河东区| 赤峰市| 台中县| 织金县| 莱州市| 南乐县| 建瓯市| 东海县| 西藏| 安康市| 龙里县| 旺苍县| 江西省| 南皮县| 永川市| 遂川县| 灵石县| 巫山县| 昌黎县|