亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

基于 flexible 的 Vue 組件:Toast -- 顯示框效果

2019-11-19 14:38:45
字體:
來源:轉載
供稿:網友

基于flexible.js 的 Vue 組件

前言:

  • 目前手頭的移動端Vue項目是用手淘的 lib-flexible 作適配的,并用px2rem 來自動轉換成rem。關于lib-flexible和px2rem的配置,請移步 vue-cli 配置 flexible 。
  • 由于使用rem作適配,導致現有的很多移動端UI框架不能與之很好的配合,往往需要大動干戈更改UI框架的樣式,背離了使用UI框架達到快速開發的初衷。
  • 為了以后項目的組件復用,以及提高開發可復用組件的能力,特把平時項目中 常用的、簡單的 組件單獨拎出來。
  • 此為小白之作,論代碼質量、難易程度、復用度,遠不及各位大佬之杰作,求輕噴。同時,也懇請各位,提出意見和建議,不勝感激!
  • GitHub地址:vue-flexible-components

Toast -- 顯示框

效果展示

 

代碼分析

div包含icon小圖標和文字說明,構成簡單的dom結構,利用props定義變量值,用computed計算屬性對傳入的值進行解構,watch監聽彈框顯示,并結合.sync修飾符達到雙向數據綁定,同時用$emit向父組件派發事件,方便父組件監聽回調。

dom結構

<transition name="fade"> <div class="Toast" v-if="toastShow"> <div class="box" :style="positionTop" > <span :class="iconClass" :style="iconBg" v-if="iconIsShow" ></span> <p v-if="message" >{{message}}</p> </div> </div></transition>

props數據

props: { message: { // 提示內容 type: String, }, toastShow: { // 是否顯示 type: Boolean, default: false }, iconClass: { // 背景圖片 type: String, }, iconImage: { // 自定義背景圖片 }, duration: { // 定時器 type: Number, default: 1500 }, position: { // 彈出框位置 type: String, default: '50%' }},

computed

computed: { // 用于判斷顯示框位置 positionTop() { return { top: this.position } }, // 自定義父組件傳過來的背景圖片 iconBg() { if (this.iconImage) { return { backgroundImage: `url(${this.iconImage})` } } else { return; } }, // 用于判斷icon是否顯示 iconIsShow() { if (this.iconClass == 'success') { return true; } else if (this.iconClass == 'close') { return true; } else if (this.iconClass == 'warning') { return true; } else if (this.iconImage) { return true; } else { return false; } }},

watch

watch: { toastShow() { // 監聽toast顯示,向父組件派發事件 if (this.toastShow) { if (this.duration < 0) { this.$emit('toastClose'); } else { setTimeout(()=>{  this.$emit('update:toastShow', false) // 利用了.sync達到雙向數據綁定  this.$emit('toastClose'); }, this.duration) } } }}

使用說明

組件地址: src/components/Toast.vue (不能npm,只能手動下載使用)

下載并放入自己項目中 ―― import 引入組件 ―― components中注冊組件 ―― 使用

props

props 說明 類型 可選值 默認值
toastShow 控制顯示框顯示、隱藏。需添加.sync修飾符才能自動關閉,詳見例子 Boolean false 
true
false
message 提示信息 String
iconClass icon小圖標 String success 
warning 
close
iconImage 自定義小圖標(圖片需require引入)
duration 定時器(毫秒),控制彈框顯示時間,負數代表不執行定時任務 Number 1500
position 彈框位置(距頂) String '50%'

$emit

$emit 說明 參數
toastClose 彈框關閉回調


示例

// 默認效果,只有提示信息 <toast message = '默認信息' :toastShow.sync = 'isShow1' // 需添加.sync修飾符,才能達到自動關閉的效果,否則只能監聽toastClose手動關閉 ></toast>  // 關于sync的說明,請看官網(主要是為了達到雙向數據綁定,子組件修改父組件狀態)  // 增加自帶小圖標 <toast message = 'success' iconClass = 'success' :toastShow.sync = 'isShow2' ></toast>// 自定義類型 <toast message = '自定義' position = '70%' :duration = '-1' //負數代表不執行定時任務,自己根據需要去關閉 :iconImage='bg' // 自定義icon小圖標,在data中需require引入,看下面 :toastShow = 'isShow5' // 因為需要手動關閉,所以不需要.sync了 @toastClose = 'isClose5' // 監聽回調,手動關閉,看下面 ></toast>  data() { return { this.isShow5 : true, bg: require('../assets/logo.png'), // 圖片必須用require進來 } }, isClose5() { setTimeout(()=>{ this.isShow5 = false; }, 2000) }

總結

以上所述是小編給大家介紹的基于 flexible 的 Vue 組件:Toast -- 顯示框,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日本中文字幕| 久久成人精品视频| 亚洲国产精品久久久久秋霞不卡| 欧美成人激情视频| 成人福利网站在线观看| 国产精品欧美日韩| 亚洲国产成人爱av在线播放| 亚洲free性xxxx护士hd| 国产午夜精品免费一区二区三区| 国产精品免费小视频| 亚洲欧美一区二区三区情侣bbw| 最近2019中文字幕一页二页| 欧美一二三视频| 亚洲国产成人久久| 欧美黑人国产人伦爽爽爽| 国产日韩精品在线播放| 久久久女女女女999久久| 中文字幕在线日韩| 日韩在线观看成人| 欧美精品做受xxx性少妇| 欧美一级成年大片在线观看| 国产成+人+综合+亚洲欧美丁香花| 亚洲国产美女精品久久久久∴| 久久精品最新地址| 91精品久久久久久久久青青| 国产精品美女久久久久久免费| 久久久国产一区二区三区| 国产精品高清免费在线观看| 久久亚洲精品成人| 成人深夜直播免费观看| 狠狠色狠狠色综合日日小说| 日本精品va在线观看| 亚洲免费视频在线观看| 国内精久久久久久久久久人| 国产精品福利在线| 亚洲成人激情图| 91tv亚洲精品香蕉国产一区7ujn| 亚洲国产成人精品久久久国产成人一区| 日韩美女av在线免费观看| 亚洲成人xxx| 久久久久久久久中文字幕| 91理论片午午论夜理片久久| 国产精品久久久久7777婷婷| 久久久久久久久久久久久久久久久久av| 亚洲国产精品久久久久久| 亚洲人精选亚洲人成在线| 91久久久久久久| 国产成人激情小视频| 久久久久一本一区二区青青蜜月| 久久免费视频在线| 欧美激情精品久久久久久大尺度| 国产欧美精品一区二区三区介绍| 亚洲精品视频在线观看视频| 日本19禁啪啪免费观看www| 亚洲精品资源在线| 国产精品欧美风情| 九九精品在线视频| 九九热99久久久国产盗摄| 91av视频在线免费观看| 亚洲男人天堂手机在线| 国产成人一区二区| 欧美国产日韩在线| 欧美乱大交做爰xxxⅹ性3| 九九热这里只有在线精品视| 日韩高清人体午夜| 欧美麻豆久久久久久中文| 青青草一区二区| 亚洲影视九九影院在线观看| 亚洲成人精品视频在线观看| 亚洲精品美女久久久久| 国产一区二区三区免费视频| 亚洲国产精品va在线观看黑人| 欧美电影免费看| 欧美高跟鞋交xxxxxhd| 国产精品久久久久久超碰| 日韩欧美在线视频观看| 国产日韩精品视频| 亚洲国产欧美一区二区三区同亚洲| 国产成人自拍视频在线观看| 91av国产在线| 美乳少妇欧美精品| 国产精品入口福利| 久久久久这里只有精品| 91深夜福利视频| 高潮白浆女日韩av免费看| 国产精品丝袜久久久久久不卡| 精品国产美女在线| 这里只有精品视频| 欧美国产在线电影| 国产精品成人一区| 深夜精品寂寞黄网站在线观看| 亚洲精品视频网上网址在线观看| 国产亚洲精品日韩| 日本老师69xxx| 国产精品主播视频| 中文欧美日本在线资源| 久久噜噜噜精品国产亚洲综合| 日韩欧美国产成人| 亚洲精品第一页| 日本一本a高清免费不卡| 亚洲天堂成人在线视频| 国产97人人超碰caoprom| 国产精品igao视频| 成人免费视频在线观看超级碰| 欧美精品在线免费| 欧美激情三级免费| 在线日韩精品视频| 国产亚洲精品久久久久久777| 亚洲精品一区在线观看香蕉| 亚洲最大的成人网| 亚洲精品99久久久久| 国产精品久久久久9999| 欧美中文在线视频| 精品亚洲国产成av人片传媒| 亚洲r级在线观看| 91久热免费在线视频| 久久人人爽人人爽人人片亚洲| 海角国产乱辈乱精品视频| 久久久伊人欧美| xxxx欧美18另类的高清| 欧美中文字幕在线观看| 日本久久久久久久久| 色婷婷亚洲mv天堂mv在影片| 精品网站999www| 亚洲视频999| xxav国产精品美女主播| 亚洲码在线观看| 国产精品自拍视频| 国内揄拍国内精品少妇国语| 久久国产精品久久久久久久久久| 日韩电影中文字幕av| 国产香蕉一区二区三区在线视频| 国产小视频国产精品| 日韩在线观看免费av| 成人国产精品免费视频| 亚洲天堂av在线免费观看| 国产一区私人高清影院| 欧美精品久久久久久久久久| 欧美一级淫片丝袜脚交| 亚洲综合视频1区| 中文日韩在线视频| 欧美久久精品一级黑人c片| 国产97在线亚洲| 九九热精品视频国产| 在线观看日韩专区| 国产精品久久久久久久久久小说| 久久精品99国产精品酒店日本| 国产精品一区专区欧美日韩| 欧美www在线| 久久久av一区| 欧美精品九九久久| 欧美激情videoshd| 久久这里只有精品视频首页| www日韩欧美| 国产精品久久久久久久久久小说| 中文字幕欧美精品日韩中文字幕| 91精品国产91久久久久久吃药| 日韩欧美亚洲范冰冰与中字| 亚洲一区二区三区四区在线播放| 国产一区二区在线免费视频| 精品久久久久久久久久久久久久| 91亚洲va在线va天堂va国| 欧美视频一二三| 国产成人精品视|