如题,结合官方文档与网络帖子,利用AI整理
Vue.js 基本组件属性与方法讲解
目录
1. Button 按钮
主要属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
type |
String | ‘button’ | 按钮类型,可选值:‘button’、‘submit’、‘reset’ |
variant |
String | ‘primary’ | 按钮样式变体,可选值:‘primary’、‘secondary’、‘danger’、‘success’ |
size |
String | ‘medium’ | 按钮尺寸,可选值:‘small’、‘medium’、‘large’ |
disabled |
Boolean | false | 是否禁用按钮 |
loading |
Boolean | false | 是否显示加载状态 |
text |
String | ‘按钮’ | 按钮文本内容 |
icon |
String | - | 按钮图标 |
主要方法
| 方法名 | 参数 | 说明 |
|---|---|---|
handleClick |
- | 点击事件处理函数 |
handleSubmit |
- | 提交事件处理函数(仅当type为’submit’时有效) |
事件
-
click: 点击事件 -
submit: 提交事件
使用示例
1 | <template> |
2. Input 输入框
主要属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
modelValue |
String/Number | ‘’ | 绑定值(v-model) |
type |
String | ‘text’ | 输入框类型 |
label |
String | ‘’ | 标签文本 |
placeholder |
String | ‘’ | 占位文本 |
disabled |
Boolean | false | 是否禁用 |
readonly |
Boolean | false | 是否只读 |
required |
Boolean | false | 是否必填 |
maxlength |
Number | - | 最大输入长度 |
minlength |
Number | - | 最小输入长度 |
pattern |
RegExp | - | 正则表达式验证 |
errorMessage |
String | ‘’ | 错误提示信息 |
主要方法
| 方法名 | 参数 | 说明 |
|---|---|---|
handleInput |
event | 输入事件处理 |
handleFocus |
- | 获得焦点事件 |
handleBlur |
- | 失去焦点事件 |
validate |
- | 验证输入内容 |
事件
-
input: 输入事件 -
focus: 获得焦点事件 -
blur: 失去焦点事件 -
validate: 验证事件
使用示例
1 | <template> |
3. Form 表单
主要属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
model |
Object | {} | 表单数据对象 |
rules |
Object | {} | 验证规则 |
submitText |
String | ‘提交’ | 提交按钮文本 |
labelWidth |
String/Number | ‘120px’ | 标签宽度 |
inline |
Boolean | false | 是否行内表单 |
主要方法
| 方法名 | 参数 | 说明 |
|---|---|---|
validate |
- | 验证表单 |
handleSubmit |
- | 提交表单 |
handleReset |
- | 重置表单 |
clearError |
field | 清除指定字段错误 |
事件
-
submit: 表单提交事件 -
reset: 表单重置事件 -
invalid: 表单验证失败事件
使用示例
1 | <template> |
4. Table 表格
主要属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
data |
Array | [] | 表格数据 |
columns |
Array | [] | 列配置 |
keyField |
String | ‘id’ | 数据唯一标识字段 |
emptyText |
String | ‘暂无数据’ | 空数据提示文本 |
sortKey |
String | ‘’ | 排序字段 |
sortOrder |
String | ‘asc’ | 排序方向 |
border |
Boolean | false | 是否显示边框 |
striped |
Boolean | false | 是否斑马纹 |
主要方法
| 方法名 | 参数 | 说明 |
|---|---|---|
handleSort |
key, order | 处理排序 |
handleSelection |
rows | 处理选择 |
handleRowClick |
row, index | 处理行点击 |
事件
-
sort: 排序事件 -
selection-change: 选择变化事件 -
row-click: 行点击事件
使用示例
1 | <template> |
5. Checkbox 复选框
主要属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
modelValue |
Boolean/Array | false | 绑定值(v-model) |
label |
String | ‘’ | 标签文本 |
disabled |
Boolean | false | 是否禁用 |
indeterminate |
Boolean | false | 是否半选状态 |
name |
String | - | 表单名称 |
主要方法
| 方法名 | 参数 | 说明 |
|---|---|---|
handleChange |
value | 变化事件处理 |
事件
-
change: 变化事件
使用示例
1 | <template> |
6. Radio 单选框
主要属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
modelValue |
String/Number/Boolean | ‘’ | 绑定值(v-model) |
name |
String | - | 表单名称 |
options |
Array | [] | 选项数组 |
disabled |
Boolean | false | 是否禁用 |
主要方法
| 方法名 | 参数 | 说明 |
|---|---|---|
handleChange |
value | 变化事件处理 |
事件
-
change: 变化事件
使用示例
1 | <template> |
7. Select 下拉选择器
主要属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
modelValue |
String/Number/Boolean | ‘’ | 绑定值(v-model) |
options |
Array | [] | 选项数组 |
placeholder |
String | ‘请选择’ | 占位文本 |
disabled |
Boolean | false | 是否禁用 |
filterable |
Boolean | false | 是否可搜索 |
multiple |
Boolean | false | 是否多选 |
clearable |
Boolean | false | 是否可清空 |
size |
String | ‘medium’ | 尺寸 |
主要方法
| 方法名 | 参数 | 说明 |
|---|---|---|
toggleDropdown |
- | 切换下拉框显示/隐藏 |
selectOption |
option | 选择选项 |
handleSearch |
keyword | 搜索处理 |
事件
-
change: 变化事件 -
open: 下拉框打开事件 -
close: 下拉框关闭事件 -
clear: 清空事件
使用示例
1 | <template> |
8. 组件通信
Props 父传子
1 | <!-- ParentComponent.vue --> |
Emit 子传父
1 | <!-- ChildComponent.vue --> |
Provide/Inject
1 | <!-- AncestorComponent.vue --> |