IM/docs/vue3组件文档.md

6.5 KiB
Raw Permalink Blame History

📚 MyButton

🏷️ 1. 组件概览

基础信息

属性
组件名称 MyButton
文件路径 @/components/MyButton.vue
用途 封装项目中的所有交互按钮,提供统一的样式、交互状态和动画。
版本 v1.0.0
核心依赖 feather-icons (需要父组件或全局初始化)

引入方式

JavaScript

import MyButton from '@/components/MyButton.vue';

💡 2. 使用示例

基础用法Primary Variant

HTML

<MyButton>保存配置</MyButton>

<MyButton variant="primary">
  <i data-feather="send"></i>
  发送邮件
</MyButton>

状态和事件绑定

HTML

<MyButton variant="secondary" :disabled="isSaving">
  取消
</MyButton>

<MyButton variant="danger" :loading="isDeleting" @click="handleDelete">
  删除数据
</MyButton>

⚙️ 3. Props 属性说明 (API)

名称 (Prop Name) 类型 (Type) 可选值/说明 默认值 (Default) 描述
variant String primary (主色调), secondary (次要/灰色), danger (危险/红色), text (纯文本链接样式) 'primary' 定义按钮的外观和主题颜色。
disabled Boolean false 明确禁用按钮,移除点击交互和视觉提示。
loading Boolean false 设置为 true 时,按钮显示加载状态,并自动应用禁用样式。

🧩 4. 插槽说明 (Slots)

名称 (Slot Name) 用途 插槽 Prop 示例用法
默认 (default) 用于插入按钮的文本内容或其他核心元素。 <MyButton> 按钮文本 </MyButton>

5. 事件说明 (Events)

名称 (Event Name) 参数 (Payload) 描述
@click (event: MouseEvent) 按钮被点击时触发。由于使用了 v-bind="attrs",此事件是透传自内部 <button>

📚 IconInput

🏷️ 1. 组件概览

基础信息

属性
组件名称 IconInput
文件路径 @/components/IconInput.vue
用途 封装带图标的输入框,支持 v-model 双向绑定,并提供聚焦时图标颜色变化等高级交互。
版本 v1.0.0
核心依赖 feather-icons (需要在项目中安装)
特性 支持 v-model,自动集成 Feather Icons。

引入方式

JavaScript

import IconInput from '@/components/IconInput.vue';

💡 2. 使用示例

基础用法(双向绑定)

HTML

<template>
  <div>
    <IconInput 
      v-model="username" 
      lab="用户名" 
      icon-name="user" 
      placeholder="请输入用户名" 
      type="text"
    />
    
    <IconInput 
      v-model="password" 
      lab="密码" 
      icon-name="lock" 
      placeholder="请输入密码" 
      type="password"
    />
    
    <p>当前用户名: {{ username }}</p>
  </div>
</template>

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

const username = ref('');
const password = ref('');
</script>

⚙️ 3. Props 属性说明 (API)

名称 (Prop Name) 类型 (Type) 可选值/说明 默认值 (Default) 描述
v-model 绑定 modelValue 使用标准 v-model 语法实现双向绑定。
modelValue String '' (内部 Prop) v-model 绑定传入的值。
lab String '输入框' 输入框上方的标签Label文本。
placeholder String '' 输入框的占位符文本。
type String text, password, email 等原生类型 'text' 设置输入框的 type 属性。
iconName String 任何有效的 [Feather Icon] 名称(例如 'mail', 'user', 'lock')。 必填项,用于指定显示在输入框左侧的图标。

4. 事件说明 (Events)

名称 (Event Name) 参数 (Payload) 描述
@update:modelValue (newValue: string) (核心事件) 当输入框的值变化时,触发此事件来更新父组件通过 v-model 绑定的数据。