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

vue封裝可復用組件confirm,并綁定在vue原型上的示例

 更新時間:2019年10月31日 09:06:28   作者:Amy o-O  
今天小編就為大家分享一篇vue封裝可復用組件confirm,并綁定在vue原型上的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

如下所示:

首先我們需要創(chuàng)建 confirm.vue , confirm.js這兩個文件,一個實現(xiàn)dom結構,一個實現(xiàn)相關邏輯

confirm.vue

<template>
 <div class="confirm" v-if="isShow">
  <div class="con_box" >
   <div class="context">
    <h6>{{text.type}}</h6>
    <p>{{text.msg}}</p>
    <div class="btn">
     <span @click="close()" v-if="text.btn.no">{{text.btn.no}}</span>
     <span @click="ok()" v-if="text.btn.ok">{{text.btn.ok}}</span>
    </div>
   </div>
  </div>
 </div>
</template>
<script>
export default {
 data(){
  return{
   isShow:true,
   text:{
    type:'提示',    
    msg:'確定刪除此條信息?',
    btn:{
     ok:'確定',
     no:'取消'
    },
   }
  }
 },
 methods:{
  close(){
   console.log('關閉');
  },
  ok(){
   console.log('確定')
  }
 }
}
</script>
<style scoped>
.confirm{background-color:rgba(0, 0, 0, 0.6);width: 100%;height: 100%; position: fixed;top: 0;}
.con_box{width: 75%;height: 22%;background-color: white;position: absolute;top: 0;bottom: 0;left: 0;right: 0;margin: auto;border-radius: 5px;}
.context{padding: 10px;}
.context h6{font-size: 24px;padding: 15px;}
.context p{font-size: 20px;padding: 35px 15px;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;}
.btn{padding: 15px;text-align: right;}
.btn span{padding: 10px 35px; color: white;border-radius: 5px;}
.btn span:nth-child(1){background-color: #f1f1f1;color: rgb(106, 223, 223);}
.btn span:nth-child(2){background-color: rgb(106, 223, 223);}
</style>

confirm.js

import Vue from 'vue';
import confirm from './confirm.vue';

let confirmConstructor = Vue.extend(confirm);

let theConfirm = function (text) {
 return new Promise((res, rej) => { //promise封裝,ok執(zhí)行resolve,no執(zhí)行rejectlet
  let confirmDom = new confirmConstructor({ 
  el: document.createElement('div')
  })
  document.body.appendChild(confirmDom.$el); //new一個對象,然后插入body里面

  confirmDom.text = text; //為了使confirm的擴展性更強,這個采用對象的方式傳入,所有的字段都可以根據(jù)需求自定義
  confirmDom.ok = function () {
  res()
  confirmDom.isShow = false
  }
  confirmDom.close = function () {
  rej()
  confirmDom.isShow = false
  }

 })
 }

 export default theConfirm; 
 
 //暴露出去,別忘記掛載到vue的原型上 
 // => 在main.js里面先引入 import theConfirm from './components/confirm/confirm.js'
 // => 再掛載 Vue.prototype.$confirm = theConfirm;
 //在需要的地方直接用以下方法調(diào)用即可:
 // this.$confirm({
 //  type:'提示',
 //  msg:'是否刪除這條信息?',
 //  btn:{
 //   ok:'yes',
 //   no:'no'
 //  }
 // }).then(() => {
 //  console.log('ok')
 // })
 // .catch(() => {
 //  console.log('no')
 // })

main.js

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'

//這里就是對組件的綁定
import theConfirm from './components/confirm/confirm.js'
Vue.prototype.$confirm = theConfirm;

Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
 el: '#app',
 router,
 components: { App },
 template: '<App/>'
})

helloworld.vue

<template>
 <div class="hello">
  <span @click="handMe()">點擊一下</span>
 </div>
</template>

<script>
export default {
 name: 'HelloWorld',
 data () {
 return {
  
 }
 },
 methods:{
 handMe(){
 this.$confirm({
 type:'提示',
 msg:'是否刪除這條信息?',
 btn:{
  ok:'yes',
  no:'no'
 }
 }).then(() => {
 console.log('ok')
 })
 .catch(() => {
 console.log('no')
 })
 }
 }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
span{font-size: 24px;}
</style>

以上這篇vue封裝可復用組件confirm,并綁定在vue原型上的示例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Vue中的?watch監(jiān)聽屬性詳情

    Vue中的?watch監(jiān)聽屬性詳情

    這篇文章主要介紹了Vue中的?watch監(jiān)聽屬性詳情,mputed計算屬性用來監(jiān)聽多個數(shù)據(jù);watch?監(jiān)聽單個數(shù)據(jù);本文將具體介紹的是?watch監(jiān)聽屬性,感興趣的小伙伴可以參考一下文章的具體內(nèi)容,希望對你有所幫助
    2021-12-12
  • vue移動端實現(xiàn)手指滑動效果

    vue移動端實現(xiàn)手指滑動效果

    這篇文章主要為大家詳細介紹了vue移動端實現(xiàn)手指滑動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 深度剖析?Vue3?在瀏覽器的運行原理

    深度剖析?Vue3?在瀏覽器的運行原理

    這篇文章主要介紹了深度剖析Vue3在瀏覽器的運行原理,文章通過圍繞主題展開相關詳細介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • vue中使用swiper5方式

    vue中使用swiper5方式

    這篇文章主要介紹了vue中使用swiper5方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue移動端用淘寶彈性布局lib-flexible插件做適配的方法

    Vue移動端用淘寶彈性布局lib-flexible插件做適配的方法

    這篇文章主要介紹了Vue移動端用淘寶彈性布局lib-flexible插件做適配的操作方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • vue實現(xiàn)從外部修改組件內(nèi)部的變量的值

    vue實現(xiàn)從外部修改組件內(nèi)部的變量的值

    這篇文章主要介紹了vue實現(xiàn)從外部修改組件內(nèi)部的變量的值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue的$http的get請求要加上params操作

    vue的$http的get請求要加上params操作

    這篇文章主要介紹了vue的$http的get請求要加上params操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Vue+node實現(xiàn)音頻錄制播放功能

    Vue+node實現(xiàn)音頻錄制播放功能

    這篇文章主要介紹了Vue+node實現(xiàn)音頻錄制播放,功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • vue+threejs寫物體動畫之物體縮放動畫效果

    vue+threejs寫物體動畫之物體縮放動畫效果

    最近在vue中安裝Three.js,無聊順便研究一些關于3D圖形化庫,下面這篇文章主要給大家介紹了關于vue+threejs寫物體動畫之物體縮放動畫效果的相關資料,需要的朋友可以參考下
    2022-10-10
  • vue2文件流下載成功后文件格式錯誤、打不開及內(nèi)容缺失的解決方法

    vue2文件流下載成功后文件格式錯誤、打不開及內(nèi)容缺失的解決方法

    使用Vue時我們前端如何處理后端返回的文件流,下面這篇文章主要給大家介紹了關于vue2文件流下載成功后文件格式錯誤、打不開及內(nèi)容缺失的解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04

最新評論

彩票| 中超| 鹤峰县| 碌曲县| 城固县| 革吉县| 阜阳市| 平乐县| 芦山县| 阳山县| 浪卡子县| 华坪县| 峨边| 财经| 潞西市| 玉屏| 盐边县| 历史| 六盘水市| 扎囊县| 垫江县| 高淳县| 大兴区| 英德市| 山阴县| 宝兴县| 襄垣县| 邻水| 呼伦贝尔市| 鱼台县| 嵊州市| 克拉玛依市| 平安县| 浙江省| 黔西| 岳阳县| 孟村| 方城县| 达日县| 西藏| 南宫市|