【VUE3】【Naive UI】<n-button> 标签

【VUE3】【Naive UI】<n-button> 标签

      • [**`type`**- 定义按钮的类型,这会影响按钮的颜色和样式。](#type- 定义按钮的类型,这会影响按钮的颜色和样式。)
      • [**`size`**- 设置按钮的大小。](#size- 设置按钮的大小。)
      • [**`disabled`**- 布尔值,控制按钮是否处于禁用状态。](#disabled- 布尔值,控制按钮是否处于禁用状态。)
      • [**`loading`**- 布尔值,表示按钮是否处于加载状态。如果为 true,则显示加载指示器。](#loading- 布尔值,表示按钮是否处于加载状态。如果为 true,则显示加载指示器。)
      • [**`round`**- 布尔值,使按钮具有圆角](#round- 布尔值,使按钮具有圆角)
      • [**`circle`**- 布尔值,使按钮呈现圆形](#circle- 布尔值,使按钮呈现圆形)
      • [**`ghost`**- 布尔值,创建幽灵风格的按钮(无背景色)。](#ghost- 布尔值,创建幽灵风格的按钮(无背景色)。)
      • [**`strong`**- 布尔值,增强按钮的视觉重量。](#strong- 布尔值,增强按钮的视觉重量。)
      • [**`tertiary`**- 布尔值,使按钮具有三级样式。](#tertiary- 布尔值,使按钮具有三级样式。)
      • [**`icon`**- 添加图标到按钮中。](#icon- 添加图标到按钮中。)
      • [**`onClick`**- 绑定点击事件处理程序。](#onClick- 绑定点击事件处理程序。)
      • [**`class`**- 添加自定义 CSS 类名。](#class- 添加自定义 CSS 类名。)
      • [**`style`**- 直接添加内联样式。](#style- 直接添加内联样式。)
      • [**`tag`**- 指定按钮渲染成的 HTML 标签,默认是 <button>。](#tag- 指定按钮渲染成的 HTML 标签,默认是 <button>。)
      • [**`to`**- 当 tag 设置为 <router-link> 时,这个属性用于指定路由跳转的目标路径。](#to- 当 tag 设置为 <router-link> 时,这个属性用于指定路由跳转的目标路径。)
      • [**`ripple`**- 布尔值,控制按钮点击时是否显示波纹效果](#ripple- 布尔值,控制按钮点击时是否显示波纹效果)
      • [**`focusable`**- 布尔值,控制按钮是否可以通过键盘聚焦](#focusable- 布尔值,控制按钮是否可以通过键盘聚焦)
      • [**`block`**- 布尔值,使按钮占据其父容器的全部宽度](#block- 布尔值,使按钮占据其父容器的全部宽度)
      • [**`pressed`**- 布尔值,模拟按钮被按下的状态](#pressed- 布尔值,模拟按钮被按下的状态)
      • [**`nativeType`**- :设置按钮的原生类型,如 'submit', 'reset' 或 'button'](#nativeType- :设置按钮的原生类型,如 'submit', 'reset' 或 'button')
      • [**`form`**- 与 <button> 元素的 form 属性相同,用于指定按钮所属的表单。](#form- 与 <button> 元素的 form 属性相同,用于指定按钮所属的表单。)
      • [**`name`**- 与 <button> 元素的 name 属性相同,用于标识按钮的名称。](#name- 与 <button> 元素的 name 属性相同,用于标识按钮的名称。)
      • [**`value`**- 与 <button> 元素的 value 属性相同,用于指定按钮的值](#value- 与 <button> 元素的 value 属性相同,用于指定按钮的值)

【VUE3】【Naive UI】<NCard> 标签
【VUE3】【Naive UI】<n-button> 标签
【VUE3】【Naive UI】<a> 标签

<NButton> 组件,这是 Naive UI 中的一个按钮组件。
Naive UI 是一个基于 Vue 3 的高质量 UI 组件库,提供了丰富的配置选项来满足各种设计需求。

下面是 <NButton>组件的一些主要参数及其详细解释,并附上具体的代码示例。

type- 定义按钮的类型,这会影响按钮的颜色和样式。

<template>
  <n-button type="default">Default</n-button> //会创建一个具有默认样式的按钮,并显示文本 "Default"。
  <n-button type="primary">Primary</n-button> // 会创建一个主要操作样式的按钮,并显示文本 "Primary"。
  <n-button type="info">Info</n-button>
  <n-button type="success">Success</n-button>
  <n-button type="warning">Warning</n-button>
  <n-button type="error">Error</n-button>
  <n-button type="text">Text Button</n-button>
</template>

type 是 组件的一个属性(attribute),用来指定按钮的样式类型。
Naive UI 中的 组件通过 type 属性来定义按钮的不同视觉风格和用途。

不同的 type 值对应着不同样式的按钮,这些样式通常用于传达给用户特定的信息或状态。

具体来说,<n-button>type 属性可以接受以下值:

  • default:默认样式,适用于一般情况。
  • primary:主要操作按钮,通常用来强调页面中的主要动作。
  • info:信息提示按钮,常用于表示信息性的操作。
  • success:成功状态按钮,用于指示一个成功的操作或结果。
  • warning:警告按钮,用来提醒用户注意某些事情。
  • error:错误状态按钮,用于表示出错的情况。
  • text:文本按钮,这种按钮看起来更像是一段可点击的文本,而不是传统的按钮样式。

size- 设置按钮的大小。

<template>
  <n-button size="small">Small</n-button>
  <n-button size="medium">Medium (默认)</n-button>
  <n-button size="large">Large</n-button>
</template>

在Naive UI中, 组件的 size 参数用于控制按钮的大小。

根据Naive UI的官方文档,size 属性支持以下几种值:

  • "small": 创建一个较小尺寸的按钮。
  • "medium": 默认值,创建一个标准尺寸的按钮。当不指定 size 属性时,默认使用这个大小。
  • "large": 创建一个较大尺寸的按钮。

这些选项允许开发者根据界面设计需求灵活地调整按钮的大小。

此外,Naive UI还可能提供其他自定义样式或属性来进一步定制按钮的外观和行为。

disabled- 布尔值,控制按钮是否处于禁用状态。

Naive UI中,n-button 组件的 disabled 参数用于控制按钮是否处于禁用状态。

当设置为 true 时,按钮将不可点击,并且通常会显示为灰色或带有某种视觉提示来表示它当前是不可交互的状态。

这个参数对于确保用户界面逻辑的正确性非常有用,比如在表单提交过程中,可以暂时禁用提交按钮以防止重复提交。

此外,disabled 属性还会影响按钮的 tabIndex 属性,将其设为 -1,这意味着在使用键盘导航时,该按钮不会成为焦点。

在实际应用中,你可以在 标签上直接设置 :disabled="true" 或者绑定一个布尔值变量来动态控制按钮的禁用状态。

import { ref } from 'vue';

<template>
  <n-button :type="primary" :disabled="isDisabled">主要按钮</n-button>
</template>

<script setup>
	const isDisabled = ref(false);
	// 在某些情况下改变 isDisabled 的值
	function toggleButton() {
	  isDisabled.value = !isDisabled.value;
	}
</script>

loading- 布尔值,表示按钮是否处于加载状态。如果为 true,则显示加载指示器。

在Naive UI中,n-button 组件的 loading 参数用于控制按钮是否处于加载状态。

当设置为 true 时,按钮将显示一个加载指示器(通常是旋转的图标),并且通常会禁用按钮的点击功能,以防止用户在加载过程中执行额外的操作。

这个参数对于提升用户体验非常重要,特别是在异步操作期间,如表单提交、数据加载等场景。

从源码级剖析的角度来看,n-buttonloading 属性是通过组件内部的状态管理和渲染逻辑来实现的。

loading 属性被设置为 true 时,它会影响按钮的内容和样式。

例如,可能会隐藏原有的文本或图标,并显示一个加载图标,同时改变按钮的视觉外观,比如背景色、边框颜色等,使其看起来像是正在处理某个请求。

n-button 组件可能使用了类似于以下的逻辑来处理 loading 状态:

  • 状态管理:n-button 内部可能有一个计算属性或者直接在模板中使用条件渲染来检查 loading 属性。
  • 内容替换:如果 loading 为 true,则显示加载图标;否则,显示按钮的默认内容。
  • 样式调整:根据 loading 状态,应用不同的CSS类来改变按钮的外观。
  • 交互性:当 loading 为 true 时,按钮会被设置为不可点击状态,这可以通过给按钮添加 disabled 属性或类似的方式来实现。

在实际应用中,你可以在 <n-button> 标签上直接设置 :loading="true" 或者绑定一个布尔值变量来动态控制按钮的加载状态。

例如:

import { ref } from 'vue';

const isLoading = ref(false);

// 在开始加载时设置 isLoading 为 true
function startLoading() {
  isLoading.value = true;
  // 执行异步操作
  setTimeout(() => {
    // 结束加载时设置 isLoading 为 false
    isLoading.value = false;
  }, 2000); // 假设加载需要2秒
}

// 触发加载
startLoading();
</script>

这段代码示例中,isLoading 是一个响应式的布尔值,初始值为 false。

调用 startLoading 函数会触发加载状态,模拟了一个耗时2秒的异步操作,在此期间按钮将显示加载指示器。

round- 布尔值,使按钮具有圆角

round,它用于控制按钮的圆角程度。这个属性可以接受布尔值或数值,以决定按钮边角的样式。

<template>
  <n-button round>Round Button</n-button>
</template>

circle- 布尔值,使按钮呈现圆形

<template>
  <n-button circle>Circle Button</n-button>
</template>

ghost- 布尔值,创建幽灵风格的按钮(无背景色)。

<template>
  <n-button ghost>Ghost Button</n-button>
</template>

strong- 布尔值,增强按钮的视觉重量。

<template>
  <n-button strong>Strong Button</n-button>
</template>

tertiary- 布尔值,使按钮具有三级样式。

<template>
  <n-button tertiary>Tertiary Button</n-button>
</template>

icon- 添加图标到按钮中。

<template>
  <n-button icon="search">Search</n-button>
  <n-button icon="edit">Edit</n-button>
</template>

onClick- 绑定点击事件处理程序。

<template>
  <n-button @click="handleClick">Click Me</n-button>
</template>

<script setup>
import { ref } from 'vue';

const handleClick = () => {
  console.log('Button was clicked!');
};
</script>

class- 添加自定义 CSS 类名。

<template>
  <n-button class="my-custom-class">Custom Class Button</n-button>
</template>

style- 直接添加内联样式。

<template>
  <n-button style="background-color: #ff0000;">Red Background</n-button>
</template>

tag- 指定按钮渲染成的 HTML 标签,默认是 。

<template>
  <n-button tag="a" href="https://example.com">Link Button</n-button>
</template>

to- 当 tag 设置为 时,这个属性用于指定路由跳转的目标路径。

<template>
  <n-button to="/about" tag="router-link">Go to About Page</n-button>
</template>

ripple- 布尔值,控制按钮点击时是否显示波纹效果

<template>
  <n-button ripple=false>Without Ripple</n-button>
</template>

focusable- 布尔值,控制按钮是否可以通过键盘聚焦

<template>
  <n-button focusable=false>Not Focusable</n-button>
</template>

block- 布尔值,使按钮占据其父容器的全部宽度

<template>
  <n-button block>Block Button</n-button>
</template>

pressed- 布尔值,模拟按钮被按下的状态

<template>
  <n-button pressed>Pressed Button</n-button>
</template>

nativeType- :设置按钮的原生类型,如 'submit', 'reset' 或 'button'

<template>
  <form>
    <n-button native-type="submit">Submit</n-button>
    <n-button native-type="reset">Reset</n-button>
  </form>
</template>

form- 与 元素的 form 属性相同,用于指定按钮所属的表单。

<template>
  <form id="myForm">
    <n-button form="myForm">Submit Form</n-button>
  </form>
</template>

name- 与 元素的 name 属性相同,用于标识按钮的名称。

<template>
  <n-button name="action">Action Button</n-button>
</template>

value- 与 元素的 value 属性相同,用于指定按钮的值

<template>
  <n-button value="save">Save Button</n-button>
</template>

这些例子展示了如何使用 组件的各种属性来定制按钮的行为和外观。

相关推荐
Amd7947 分钟前
Nuxt.js 应用中的 render:html 事件钩子
安全·html·渲染·nuxt·seo·钩子·动态
姜来前端程序媛13 分钟前
uniapp H5支付宝支付
前端·javascript·uni-app
FGGIT25 分钟前
从语法、功能、社区和使用场景来比较 Sass 和 LESS
前端·less·sass
哲学之窗28 分钟前
matlab 中的 bug
linux·前端·bug
cwtlw31 分钟前
CSS学习记录03
前端·css·笔记·学习
Reset the brain34 分钟前
uniapp的video组件截图(抓拍)功能,解决截后为黑图bug
前端·vue.js·uni-app·html5
少年姜太公42 分钟前
如何动态生成一个新的节点及它的子节点
前端·javascript·html
openquoll1 小时前
代码量立减 61.2%!从 useReducer 出发,探求以纯函数管理状态的极简之道
前端·javascript
禅思院1 小时前
npm error code ETIMEDOUT 简单排查
前端·npm·node.js
cdcdhj1 小时前
nodejs建立TCP服务器端和TCP客户端之间的连接
前端·网络·网络协议·node.js