Vue3?Radio單選切換展示不同內(nèi)容實現(xiàn)代碼
Vue3 Radio單選框切換展示不同內(nèi)容
環(huán)境:vue3+ts+vite+element plus
技巧:v-if,v-show的使用
實現(xiàn)功能:點擊單選框展示不同的輸入框
效果實現(xiàn)前的代碼:
<template>
<div class="home">
<el-row :gutter="20" style="padding: 0 100px">
<el-form>
<el-col :span="24">
<el-form-item label="選項:">
<el-radio-group v-model="state.radio" class="ml-4">
<el-radio label="1" size="large">型號</el-radio>
<el-radio label="2" size="large">顏色</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="型號:">
<el-input v-model="state.input" placeholder="請輸入型號"/>
</el-form-item>
<el-form-item label="顏色:">
<el-input v-model="state.input2" placeholder="請輸入顏色"/>
</el-form-item>
</el-col>
</el-form>
</el-row>
</div>
</template>
<script setup lang="ts">
import {reactive, ref} from "vue";
const isShow = ref(true)
const state = reactive({
radio: '1',
input: '',
input2: '',
})
</script>
<style lang="scss" scoped>
.home {
background: antiquewhite;
height: 200px;
}
</style>
1.默認選項型號是選中的,型號輸入框也是展示的,那么顏色輸入框是需要隱藏,定義isShow,
<el-col :span="24">
<el-form-item label="型號:" v-show="isShow">
<el-input v-model="state.input" placeholder="請輸入型號"/>
</el-form-item>
<el-form-item label="顏色:" v-show="!isShow">
<el-input v-model="state.input2" placeholder="請輸入顏色"/>
</el-form-item>
</el-col>
//js
const isShow = ref(true)此時,isShow是true,! isShow就是false了,顯示如下

2.獲取單選框選擇的radio值。切換的時候下面輸入框也要隨之切換。定義@change事件,如果val=1,isShow的值是true,!isShow就是false,如果不是1,那肯定是2了,因為這里只有2個選項,val=2時,型號的 isShow是fasle,顏色的! isShow就是true
<el-radio-group v-model="state.radio" class="ml-4" @change="handleChange">
<el-radio label="1" size="large" >型號</el-radio>
<el-radio label="2" size="large" >顏色</el-radio>
</el-radio-group>
//js
const handleChange = (val: any) => {
if (val == 1) {
isShow.value = true
} else {
isShow.value = false
}
}
完整代碼如下
<template>
<div class="home">
<el-row :gutter="20" style="padding: 0 100px">
<el-form>
<el-col :span="24">
<el-form-item label="選項:">
<el-radio-group v-model="state.radio" class="ml-4" @change="handleChange">
<el-radio label="1" size="large" >型號</el-radio>
<el-radio label="2" size="large" >顏色</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="型號:" v-show="isShow">
<el-input v-model="state.input" placeholder="請輸入型號"/>
</el-form-item>
<el-form-item label="顏色:" v-show="!isShow">
<el-input v-model="state.input2" placeholder="請輸入顏色"/>
</el-form-item>
</el-col>
</el-form>
</el-row>
</div>
</template>
<script setup lang="ts">
import {reactive, ref} from "vue";
const isShow = ref(true)
const state = reactive({
radio: '1',
input: '',
input2: '',
})
const handleChange = (val: any) => {
if (val == 1) {
isShow.value = true
} else {
isShow.value = false
}
}
</script>
<style lang="scss" scoped>
.home {
background: antiquewhite;
height: 200px;
}
</style>至此,有沒有發(fā)現(xiàn) v-if 還沒出現(xiàn)
改造
效果:進入頁面是單選框默認沒有選擇,輸入框是隱藏的,點擊單選框才展示輸入框思路:單選radio的值為0時,也就是剛進入頁面radio單選框并沒有選擇,當radio有值時,對應(yīng)的輸入框顯示。
此時 v-if 出場了,只要radio的值不為0,也就是radio必須有選擇才出現(xiàn)輸入框這塊,但是radio的默認值是要改為0
<el-col :span="24" v-if="state.radio!=0">
<el-form-item label="型號:" v-show="isShow">
<el-input v-model="state.input" placeholder="請輸入型號"/>
</el-form-item>
<el-form-item label="顏色:" v-show="!isShow">
<el-input v-model="state.input2" placeholder="請輸入顏色"/>
</el-form-item>
</el-col>
//js
const state = reactive({
radio: '0',
input: '',
input2: '',
})進入頁面時效果:

選擇時:

到此這篇關(guān)于Vue3 Radio單選切換展示不同內(nèi)容的文章就介紹到這了,更多相關(guān)Vue3 Radio單選切換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue踩坑記-在項目中安裝依賴模塊npm install報錯
這篇文章主要介紹了vue踩坑記-在項目中安裝依賴模塊npm install報錯,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
vue3中實現(xiàn)文本顯示省略號和tooltips提示框的方式詳解
在?B?端業(yè)務(wù)中,我們經(jīng)常會遇到文本內(nèi)容超出容器區(qū)域需顯示省略號的需求,當鼠標移入文本時,會出現(xiàn)?Tooltip?顯示完整內(nèi)容,最近,我也遇到了這樣的場景,接下來給大家介紹vue3中實現(xiàn)文本顯示省略號和tooltips提示框的方式,需要的朋友可以參考下2024-04-04
vue template當中style背景設(shè)置不編譯問題
這篇文章主要介紹了vue template當中style背景設(shè)置不編譯問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04
Vue+Element UI+Lumen實現(xiàn)通用表格分頁功能
這篇文章主要介紹了Vue+Element UI+Lumen實現(xiàn)通用表格分頁功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-02-02

