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) const timer = setTimeout(() => { toastDOM.show = false toastDOM.$el.parentElement.removeChild(toastDOM.$el) clearTimeout(timer) }, 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
分类:
vue
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
2020-08-08 ECharts is not Loaded