Vue2中 toast封装-插件方式的封装

采用普通方式封装有时候存在一些壁垒

采用插件方式封装,可直接调用插件的安装函数 $toast.show()在页面显示即可, 方便多处调用。

原理:将toast封装在插件中 ----安装插件----组件创建开始就添加到body中---利用插件的安装函数在页面显示

步骤1:自行新建toast组件

<template>
<div class="toast" v-show="isShow">
  <div >{{message}}</div>
</div>
</template>

<script>
export default {
  name: "Toast",
  data() {
    return {
      isShow: false,
      message: ''
    }
  },
  methods:{
    show(message="默认值",duration = 1500){

      this.isShow = true;
      this.message = message;

      setTimeout(()=>{
        this.isShow = false
        this.message = " "
      },duration)
    }
  }
}

步骤2:index.js中新建obj对象

import Toast from "./Toast";
import Vue from "vue";

const obj = {}


export default obj

步骤3:main.js中安装toast插件

import Vue from 'vue'
import App from './App.vue'

import toast from "components/common/toast" //导入自己封装的toast插件


// 安装toast插件
Vue.use(toast);


new Vue({
  render: h => h(App),
  router,
  store,

}).$mount('#app')

步骤4:index.js中--安装toast过程中成功添加到Vue原型上

import Toast from "./Toast";
import Vue from "vue";

const obj = {}

obj.install=function(vue){
  
//  1.创建组件构造器
  const toastConstructor = Vue.extend(Toast);
//  2.使用new创建一个组件实例对象
  const toast = new toastConstructor();
//  3.将这个实例对象挂载到某个div上
  toast.$mount(document.createElement('div'))
//  4.toast.$el对应的就是div
  document.body.appendChild(toast.$el)
//  5.将实例添加到Vue的prototype上
  Vue.prototype.$toast = toast;
};

export default obj

步骤5:使用$toast中show方法显示toast

this.$toast.show()

结果展示:

 toast封装-插件方式的封装价值和意义在于封装一次,可以在多处直接使用$toast.show('商品成功添加到购物车',2000)来显示所需要的toast。

与传统方式封装相比,在多次引用组件时候,避免了频繁的  引入组件-注册组件-显示组件-向子组件传递参数等多次流程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值