一、基本介紹
Vue3 Input是一個基於Vue3的多功能輸入框組件,可以支持多種輸入類型和自定義功能,如輸入校驗、下拉選項、聯想輸入等等。由於使用了Vue3的Composition API,使用起來方便簡單,同時還提供了非常友好的交互體驗和自定義功能接口。
二、常用屬性
Vue3 Input提供了以下常用屬性:
<template>
<Vue3Input
v-model="inputValue"
placeholder="請輸入內容"
:disabled="isDisabled"
:readonly="isReadonly"
:maxlength="maxLen"
:showClear="showClearBtn"
:showPwd="showPassword"
:inputType="inputType"
:options="selectOptions"
@input="handleInput"
@blur="handleBlur"
@focus="handleFocus"
@change="handleChange"
/>
</template>
<script>
import { ref } from 'vue';
import Vue3Input from './Vue3Input.vue';
export default {
components: { Vue3Input },
setup() {
const inputValue = ref('');
const isDisabled = ref(false);
const isReadonly = ref(false);
const maxLen = ref(100);
const showClearBtn = ref(false);
const showPassword = ref(false);
const inputType = ref('text');
const selectOptions = ref([]);
const handleInput = (value) => {
console.log(value);
};
const handleBlur = () => {
console.log('blur');
};
const handleFocus = () => {
console.log('focus');
};
const handleChange = () => {
console.log('change');
};
return {
inputValue,
isDisabled,
isReadonly,
maxLen,
showClearBtn,
showPassword,
inputType,
selectOptions,
handleInput,
handleBlur,
handleFocus,
handleChange,
};
},
};
</script>
1. v-model
用於綁定輸入框的值,一般應該與數據源中的變量雙向綁定來實現數據更新。
2. placeholder
輸入框的默認文本提示語,當輸入框無內容時會顯示該提示文本。
3. disabled
是否禁用輸入框,當值為true時無法輸入內容,同時會應用一定的樣式提示用戶無法進行輸入。
4. readonly
是否只讀,當值為true時無法編輯,但可以進行選取、複製等操作,同時會應用一定的樣式提示用戶只能進行閱讀。
5. maxlength
輸入框的最大長度,超過該長度的輸入將會被截取。
6. showClearBtn
是否顯示清空按鈕,用於一鍵清除輸入框中的內容。
7. showPassword
是否顯示密碼,用於輸入密碼等保密內容,將把輸入內容顯示為星號或點號等符號。
8. inputType
輸入框的類型,支持文本、數字、電話等多種類型,還可以自定義設置,根據類型來進行校驗和渲染不同的鍵盤。
9. options
下拉選項,用於提供選擇列表,用戶可以從列表中選擇一個值填充到輸入框中。
三、事件說明
Vue3 Input提供了以下常用事件:
<template>
<Vue3Input
...
@input="handleInput"
@blur="handleBlur"
@focus="handleFocus"
@change="handleChange"
/>
</template>
<script>
export default {
methods: {
handleInput(value) {
console.log(vlue);
},
handleBlur() {
console.log('blur');
},
handleFocus() {
console.log('focus');
},
handleChange() {
console.log('change');
},
},
};
</script>
1. input
當用戶輸入字符時觸發,用於更新輸入框的值。
2. blur
當輸入框失去焦點時觸發,用於保存用戶輸入的內容,同時可能進行校驗等操作。
3. focus
當輸入框獲得焦點時觸發,用於提示用戶當前正在輸入該輸入框。
4. change
當輸入框的值發生變化時觸發,與事件不同的是,只有在焦點離開輸入框之後才會觸發。
四、自定義輸入校驗
為了方便用戶輸入,Vue3 Input提供了很多自帶的校驗規則,如數字、郵箱、電話等,可以非常方便地進行設置。同時,也支持自定義校驗規則,以滿足不同業務場景的需求。
1. 內置校驗規則舉例:
<template>
<Vue3Input
...
v-model="inputValue"
:inputType="inputType"
:validator="phoneValidator"
/>
</template>
<script>
export default {
setup() {
const inputValue = ref('');
const inputType = ref('tel');
const phoneValidator = (val) => {
const reg = /^1[34578]\d{9}$/;
if (!reg.test(val)) {
return '請輸入正確的手機號碼';
}
return true;
};
return {
inputValue,
inputType,
phoneValidator,
};
},
};
</script>
2. 自定義校驗規則:
<template>
<Vue3Input
...
v-model="inputValue"
:validator="customValidator"
/>
</template>
<script>
export default {
setup() {
const inputValue = ref('');
const customValidator = (val) => {
if (val.trim() === '') {
return '內容不能為空';
} else if (val.length < 4) {
return '內容長度不能小於4';
} else {
return true;
}
};
return {
inputValue,
customValidator,
};
},
};
</script>
五、自定義下拉列表選項
為了提供更加友好的用戶輸入體驗,Vue3 Input提供了下拉選項的功能,可以在輸入框下方展示一組選項供用戶選擇。同時,也支持自定義選項,以滿足不同的業務需求。
1. 內置下拉選項舉例:
<template>
<Vue3Input
...
:options="selectOptions"
/>
</template>
<script>
export default {
setup() {
const selectOptions = [
'選項1',
'選項2',
'選項3',
...
];
return {
selectOptions,
};
},
};
</script>
2. 自定義下拉選項:
<template>
<Vue3Input
...
:options="customOptions"
/>
</template>
<script>
export default {
setup() {
const customOptions = [
{
label: '選項1',
value: 1,
},
{
label: '選項2',
value: 2,
},
{
label: '選項3',
value: 3,
},
...
];
return {
customOptions,
};
},
};
</script>
六、結束語
Vue3 Input是一個多功能的輸入框組件,提供了非常豐富的功能和事件,並且通過自定義校驗規則和下拉列表選項,可以滿足各種不同業務場景的需求。希望本文能為大家帶來一些參考和幫助,同時也希望大家在使用Vue3 Input的過程中,能夠發揮出自己的智慧和靈感,創造出更加美好的應用體驗。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/303817.html
微信掃一掃
支付寶掃一掃