vue 之简单的弹窗组件

vue 之简单的弹窗组件

notice/Notice.vue

  • 注意点:可以在添加确定 取消等按钮!
<!--  -->
<template>
  <div class="notice_wrap">
    <div>标题:{{ title }}</div>
    <div>内容:{{ message }}</div>
  </div>
</template>

<script>
export default {
  name: "Notice",
  data() {
    return {
      title: "",
      message: ""
    };
  },
  methods: {},
  destroyed() {}
};
</script>
<style lang="scss" scoped>
.notice_wrap {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  z-index: 33;
  width: 200px;
  height: 50px;
  background: pink;
}
</style>

notice/index.js

/**
 * 消息弹出窗 组件
 */
/**
 * 是否粘性定位 组件
 */
import Vue from "vue";
import Notice from "./Notice.vue";
const NoticeContructor = Vue.extend(Notice);
export default function notice(options) {
  //1:实例化
  const instance = new NoticeContructor({
    data: options
  });
  //2:手动挂载
  instance.$mount(); //代表渲染dom完成了
  //手动挂载到body
  document.body.appendChild(instance.$el); //这是 Notice组件 被挂载到body
  return instance;
}

main.js

import notice from "@/components/commom/notice/index";
Vue.prototype.$notice = notice;

使用

<template>
  <div>
    <div @click="clickMsg">打开</div>
  </div>
</template>

<script>
export default {
  name: "Hot",
  data() {
    return {};
  },
  methods: {
    clickMsg() {
      console.log("1111");
      this.$notice({
        title: "我是title",
        message: "我是msg"
      });
    }
  },
};
</script>
<style lang="scss" scoped></style>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值