Button部分源码包含了三个大的方面。
第一个是DOM结构
DOM结构:
<template> <!-- 1.按钮样式 --> <!-- 2.点击事件 --> <!-- 3.当主动禁用或者loading的时候,都会触发按钮的disabled --> <!-- 是一个整体,整个括号括起来,还得紧紧的挨着等号 --> <!-- 4.是否默认聚焦 --> <!-- 5.Button 原始类型 --> <!-- class --> <!-- 最开始的是类名 --> <!-- 后面的那个是属性 --> <!-- class里面最先是类型,然后是能否禁用 然后是风格和形状 --> <button class="el-button" @click="handleClick" :disabled="buttonDisabled || loading" :autofocus="autofocus" :type="nativeType" :class="[ type ? 'el-button--' + type : '', buttonSize ? 'el-button--' + buttonSize : '', { 'is-disabled': buttonDisabled, 'is-loading': loading, 'is-plain': plain, 'is-round': round, 'is-circle': circle } ]" > <!-- 动画 --> <!-- 在loading,就出现这个表情 --> <i class="el-icon-loading" v-if="loading"></i> <!-- icon --> <!-- icon存在,并且loading不存在 --> <i class="icon" v-if="icon && ! loading"></i> <!-- 插槽 --> <span v-if="$slot.default"><slot></slot></span> </button> </template>
里面有较为清晰的注释。
在这里再写一遍
class="el-button" -> 按钮样式
@click="handleClick" -> <