el-button详解

6 阅读4分钟

一.Button(按钮) - 用于创建不同类型的按钮。

按钮有六种类型(type),'primary(蓝)'、'success(绿)'、'warning(黄)'、'danger(红)'、'info(灰)',以及不加type属性的默认按钮。

1. 颜色

上述颜色不合胃口,可以使用深度选择器(:deep())选中按钮类名后,通过background-color自定义更改。

实操:①利用取反达到按钮“开关”效果(使用三元运算符更加简洁)

结构:

<el-button :type="isToggled ? 'open' : 'close'" @click="toggleButton">
      {{ 按钮文本 }}
</el-button>

脚本:

// 切换按钮状态的方法

const isToggled = ref(false);

const toggleButton = () => {

  isToggled.value = !isToggled.value;

};

2. 大小

Ui给了四种,'large'、'medium'、'small'、'mini',默认为medium。能满足自己玩,但满足不了界面。

一般用:deep()选中类名后,使用padding扩充按钮大小,再使用font-size设置其中文本大小,就是一个全新尺寸的按钮。

 

3. 常用属性

①disabled:禁用属性,设置后不可点。

②Circle:圆形按钮,变圆,配合icon可更加美观

③loading :表示按钮是否处于加载状态,需要进行数据提交或长时间运行的后台操作时,使用。

例:<el-button type="primary" :loading="loading" @click="handleClick"></el-button>

const loading = ref(false);

function handleClick() {

  loading.value = true;

  setTimeout(() => {

    // 操作完成,关闭加载状态

    loading.value = false;

  }, 3000);

}

④loading-icon:自定义加载中状态图标组件,想要在加载时,显示什么图标就用这个。

例:<el-button type="primary" :loading="loading" :loading-icon="loadingIcon">

    加载按钮

  </el-button>

const loading = ref(false);

const loadingIcon = Loading;

    ⑤icon:图标组件  

    ⑥native-type:原生 type 属性。这个属性在处理表单提交、重置或普通按钮行为时非常有用,因为它可以确保按钮的行为与原生 HTML 表单中的按钮行为保持一致。

当你在表单中使用 el-button 并且希望该按钮触发表单提交时,可以将 native-type 设置为 submit。这样,当用户点击按钮,表单会被提交,就像使用原生 HTML 一样。

    <el-button native-type="submit">提交</el-button>

或:重置

<el-button native-type="reset">重置</el-button>

 

    ⑦auto-insert-space:自动在两个中文字符之间插入空格

例:<el-button type="primary" auto-insert-space>确 定</el-button>

    ⑧tag:自定义元素标签。默认情况下,el-button 渲染为一个 button 元素,但使用 tag 属性,你可以将其更改为其他 HTML 元素,例如 div、a、router-link 或 nuxt-link 等。

这个属性在以下场景中非常有用:

链接按钮:如果你想让按钮表现得像一个链接,可以将其更改为 a 标签,并设置 href 属性。

路由链接:在 Vue 路由器中,你可以使用 router-link 或 nuxt-link 作为标签,以便按钮可以进行页面导航。

自定义布局:有时你可能需要将按钮放在非按钮元素中,比如 div,以适应特定的布局需求。

示例:

 <el-button tag="a" href="https://example.com" target="_blank">链接</el-button>

 <el-button tag="router-link" to="/home">首页</el-button>

 <el-button tag="div">我是一个div</el-button>

        ⑨default:自定义默认内容。

不止el-table,还有很多其他组件,都有这个slot插槽功能。它允许将内容注入到组件的模板中。default 是 Vue 中的一种特殊类型的插槽,称为默认插槽,它用于在组件中插入不具名的内容。

在 Element Plus 中使用默认插槽通常涉及将 template 标签与 #default 属性一起使用。

例如:

    <el-table-column label="操作">

    <template #default="scope">

      <el-button size="mini" @click="handleEdit(scope.row)">编辑</el-button>

      <el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button>

    </template>

</el-table-column>

在 el-pagination 分页组件中,也可以使用默认插槽来自定义分页控件的某些部分。

  <el-pagination

  :current-page="currentPage"

  :page-size="pageSize"

  :total="total"

  layout="prev, pager, next, jumper"

  @current-change="handleCurrentChange"

  @size-change="handleSizeChange">

  <template #default>

    共 {{ total }} 条记录

  </template>

</el-pagination>

 

在 Element Plus 的 el-button 组件中,default 插槽允许自定义按钮内部的内容。这可以是文本、图标或任何其他 Vue 组件。使用 default 插槽,可以完全控制按钮的显示内容,这在需要对按钮进行高度自定义时非常有用。

    <el-button>

    <template #default>

      <!-- 这里可以放置任何自定义内容 -->

      <span>自定义按钮文本</span>

      <i class="el-icon-edit"></i>

    </template>

</el-button>

default 插槽提供了极高的灵活性,可以在按钮内部放置几乎任何类型的 HTML 或 Vue 组件。这使得 el-button 组件可以适应各种不同的设计需求,例如:

a.在按钮中显示图标和文本。

b.创建带有自定义样式的按钮。

c.嵌套其他 Vue 组件,如 el-icon 或 el-dropdown。

主要是b和c,a使用的话会变得更麻烦。

在其他组件上,作用大致相同。