1. 程式人生 > 其它 >Vue.extend()

Vue.extend()

作用:將ui元件轉為js元件

利用Vue.extend()封裝一個toast元件

1、components/MyToast/index.vue

<template>
  <div class="container" v-if="show">
    <div>{{ text }}</div>
  </div>
</template>

<script>
export default {
  name: 'Toast'
}
</script>

<style scoped>
.container {
position: fixed; top: calc(50% - 20px); left: calc(50% - 50px); width: 100px; height: 40px; text-align: center; line-height: 40px; color: #fff; background-color: rgba(0, 0, 0, 0.8); border-radius: 10px; box-sizing: border-box; } </style>

components/MyToast/index.js

import Vue from 'vue'
import Toast from 
'./index.vue' const ToastConstructor = Vue.extend(Toast) function showToast(text, duration = 2000) { const toastDOM = new ToastConstructor({ el: document.createElement('div'), data() { return { text: text, show: true } } }) document.body.appendChild(toastDOM.$el)
// console.log(toastDOM) setTimeout(() => { toastDOM.show = false }, duration) } function toastRegistry() { Vue.prototype.$myToast = showToast } export default toastRegistry

2、main.js

import toastRegistry from '@/components/MyToast'
Vue.use(toastRegistry)

3、使用

<button @click="$myToast('123',1500)">按鈕</button>

https://www.cnblogs.com/wuqilang/p/12359571.html

封裝Loading元件-JS元件

vue基於vant的popup元件封裝confirm彈框