vue2自定义useVModel函数

父组件:

javascript 复制代码
<template>
<div>
 父组件数据名字:<input v-model="person.name">
 父组件数据年龄:<input v-model="person.age">
 <son v-model="person"></son>
</div>
</template>

<script>
import Son from './son.vue'
export default ({
    name:'test',
    components:{Son},
    data(){
        return{
            person:{
                name:'zsh',
                age:'18'
            }
        }
    }
})
</script>

子组件:

javascript 复制代码
<template>
<div>
    {{pdata}}
 子组件数据名字:<input v-model="pdata.name">
 子组件数据年龄:<input v-model="pdata.age">
</div>
</template>

<script>
export default ({
    name:'Son',
    props:{
    value: {
        type: Object,
        default: () => ({}),
        },
    },
    computed:{
        pdata: {
            get(){
                const that = this;
                return new Proxy(this.value, {
                    get(target, key, receiver) {
                         return target[key];
                    },
                    set(target, key, value){
                        console.log('子组件修改了数据')
                        that.$emit("input", { ...target, [key]: value });
                        return true;
                    },
                })
            },
            set(value) {
                console.log("修改了value", value);
                this.$emit("input", value);
            },
        },
    }
})
</script>
相关推荐
好家伙VCC2 分钟前
**InfluxDB实战进阶:基于Golang的高性能时序数据采集与可视化方
java·开发语言·后端·python·golang
患得患失9492 分钟前
【前端websocket】企业级功能清单
前端·websocket·网络协议
落魄江湖行2 分钟前
基础篇四 Nuxt4 全局样式与 CSS 模块
前端·css·typescript·nuxt4
斌味代码3 分钟前
Java SpringBoot 微服务实战:企业级架构设计与性能调优完全指南
java·spring boot·微服务
禅思院3 分钟前
前端性能优化:从"术"到"道"的完整修炼指南
前端·架构·前端框架
好家伙VCC3 分钟前
**发散创新:基于Go语言的服务网格实践与流量治理实战**在微服务架构日益复杂的今天,**服务网格(S
java·python·微服务·架构·golang
叫我一声阿雷吧7 分钟前
JS 入门通关手册(43):async/await 原理与异常处理(实战 + 面试,彻底搞懂)
javascript·异常处理·promise·前端面试·async/await·generator·异步编程
架构师老Y1 小时前
003、Python Web框架深度对比:Django vs Flask vs FastAPI
前端·python·django
小陈工4 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
一定要AK8 小时前
Spring 入门核心笔记
java·笔记·spring