vue组件之Alert的实现代码

前言

本文主要Alert 组件的大致框架, 提供少量可配置选项。 旨在大致提供思路

Alert

用于页面中展示重要的提示信息。

templat模板结构

<template>
 <div v-show="visible" class="Alert">
  <i v-show="closable" class="iconhandle close" @click="close"></i>
  <slot></slot>
 </div>
</template>

大致结构 alert框,icon图标, slot插值 (其他样式颜色选项...)

如果需要动画 可以在外层包上Vue内置组件transition

<transition name="alert-fade">
</transition>

script

export default {
 name: 'Alert',

 props: {
  closable: {
   type: Boolean,
   default: true
  },
  show: {
   type: Boolean,
   default: true,
   twoWay: true
  },
  type: {
   type: String,
   default: 'info'
  }
 },
 data() {
  return {
   visible: this.show
  };
 },
 methods: {
  close() {
   this.visible = false;
   this.$emit('update:show', false);
   this.$emit('close');
  }
 }
};
  • name: 组件的名字
  • props: 属性
  • methods: 方法

点击关闭 向外暴露2个事件

使用

import Alert from './Alert.vue'

Alert.install = function(Vue){
  Vue.component('Alert', Alert);
}
export default Alert
<Alert :closable="false">
 这是一个不能关闭的alert
</Alert>
<Alert>
 这是一个可以关闭的alert
</Alert>

Attribute

参数 说明 类型 可选值 默认值
closable 是否可关闭 boolean true
show 是否显示 boolean true

Event

事件名称 说明 回调参数
update:show 关闭时触发,是否显示false false
close 关闭时触发

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • vue一步步实现alert功能

    原生alert的缺点 会阻塞一切操作,影响用户体验 很多浏览器会默认静止alert,例如微信. 原生alert框样式丑陋. 项目地址: web-style项目里有css样式和vue组件.目标是快速构建后台系统.有一定自适应的设计. css 思路:最外层是一个黑色透明撑满全屏幕的div并且是fixed的div.modal-mask. 在mask内部是一个垂直居中的div框大小可以固定.垂直居中方法有几种可选.我选用的是flex.关键性的css代码如下 .modal-mask{ position:

  • vue组件之Alert的实现代码

    前言 本文主要Alert 组件的大致框架, 提供少量可配置选项. 旨在大致提供思路 Alert 用于页面中展示重要的提示信息. templat模板结构 <template> <div v-show="visible" class="Alert"> <i v-show="closable" class="iconhandle close" @click="close">&

  • vue组件命名和props命名代码详解

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Examples</title> <script src="https://cdn.jsdelivr.n

  • Vue组件化通讯的实例代码

    1. Vue的组成文件(.vue) 分为三部分,分别对应html,js,css <template></template> <script></script> <style></style> 2. Vue的生命周期函数 beforeCreate() 创建数据之前 created() 创建数据 我们在这里的得到我们在data里面创建的数据 beforeMount() // Dom渲染完成前 mounted() //Dom渲染完成 bef

  • Vue组件之Tooltip的示例代码

    前言 本文主要Alert 组件的大致框架, 提供少量可配置选项. 旨在大致提供思路 tooltip 常用于展示鼠标 hover 时的提示信息. 模板结构 <template> <div style="position:relative;"> <span ref="trigger"> <slot> </slot> </span> <div class="tooltip"

  • vue组件表单数据回显验证及提交的实例代码

    最近项目需要到vue开发单页面,所以就研究一下表单数据的回显,验证及提交如何用vue组件的方式实现. 代码如下: <template> <div class="index"> <!--header-bar></header-bar--> <div style="margin:20px;"> <div class="item"> <p>住户名称:</p>

  • vue组件生命周期详解

    本文实例为大家分享了vue组件生命周期的具体代码,供大家参考,具体内容如下 分为4个阶段: create/mount/update/destroy 每一个阶段都对应着有自己的处理函数 create: beforeCreate created 初始化 mount: beforeMount mounted 和挂载相关的处理 update: beforeUpdate updated 根据要更新的数据 做逻辑判断 destroy:beforeDestroy destroyed 清理工作 代码: <!do

  • vue组件watch属性实例讲解

    本文实例为大家分享了vue组件watch属性的具体代码,供大家参考,具体内容如下 <!doctype html> <html> <head> <meta charset="UTF-8"> <title>wacth属性</title> <script src="js/vue.js"></script> </head> <body> <div i

  • Vue组件化开发思考

    一般说到组件,我首先想到的是弹窗,其他就大脑空白了. 因为觉得这个是在项目中最常用的功能,提取出来方便复用的才是组件- 然而我才发现这个想法是有问题的. 我发觉可能从意识上把Vue的组件和UI库的组件(弹窗之类的)混淆了... 缘起于最近的一个表单开发,页面上有2个是联动菜单的选项. 首先想到的是,这个样式和选择地址的那个联动菜单,完全一样哈- (废话,同一个项目 当然要保持ui风格的相同啊!) 不过差别在于 我这个是 一个1级 一个2级, 地址那个是4级的. 然后我就想着把那个地址的组件引进来

  • bootstrap-table formatter 使用vue组件的方法

    bootstrap-table简介 •1.1.bootstrap table简介及特征: Bootstrap table是国人开发的一款基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选.多选.排序.分页,以及编辑.导出.过滤(扩展)等等的功能.目前在github上已经有2600多个Star,可见其受欢迎程度.其官方网站地址 为:http://bootstrap-table.wenzhixin.net.cn/.里面可以下载使用所需的JS和CSS文件,以及参

  • 自定义Vue组件打包、发布到npm及使用教程

    本文将帮助:将自己写的Vue组件打包到npm进行代码托管,以及正常发布之后如何使用自己的组件. 本文讲述的仅仅是最基础的实现,其他复杂的操作需要非常熟悉webpack的相关知识,作者将继续学习. 按照大佬文中写的一步步操作,够细心的话基本可以一步到位.下面总结一下发布步骤: 1. 利用Vue的脚手架新建一个简易版的Vue项目my-project: vue init webpack-simple my-project -> cd my-project -> npm i -> npm run

随机推荐