v-model双向数据绑定,封装切换tabs组件

v-model原理

<input v-bind:value="message" v-on:input="message = $event.target.value">

这里 v-bind:value 是将 message 属性绑定到输入框的 value 上,而 v-on:input 是监听输入框的 input 事件来更新 message 的值。

$event.target表示事件目标,即触发事件的元素,而$event.target.value表示触发事件元素的值。

封装组件

子组件

<template>
    <div id="defaultId1" class=" uUE9lVc" @click="changeTab" :class="value==label ? 'active' : ''">{{ label}}</div>
</template>
<script>

    export default {
        name: '',
        props: {
            value:{
                type:String,
                default:''
            },

            label:{
                type:Number,
                default:''
            }
        },
 
        data() {
            return {
              
            }
        },
        methods: {
            changeTab(){
                //子组件向父组件通过input传递label值,
                //父组件通过v-bind:value 和v-on:input将value值重新赋值
                this.$emit('input', this.label)


            }
        },
        computed: {}
    }
</script>
<style>
    .active {
        background-color: green;
    }


</style>

父组件:

<template>
    <div class="tabsArr"> 
        <xiao_tabs id="g1f8e6" v-model="tabsTitle" label="状态"> </xiao_tabs>
        <xiao_tabs id="g1f8e6" v-model="tabsTitle" label="公司简介"> </xiao_tabs>
        <xiao_tabs id="g1f8e6" v-model="tabsTitle" label="公司控股"> </xiao_tabs>
        <xiao_tabs id="g1f8e6" v-model="tabsTitle" label="营运表现"> </xiao_tabs>
    </div>
</template>

<script>
import xiao_tabs from './../地址';
components: {
    xiao_tabs
}
<script>
<style>
.tabsArr{
    display: flex;
    justify-content: space-around;
    background-color: #ccc;
       
}
</style>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值