Vue3父子组件双向绑定值用例

父

javascript 复制代码
<template>
  <div>
    <MySelect v-model="data" />
    <div>
      code1: {{ data.code1 }}
    </div>
    <div>
      code2: {{ data.code2 }}
    </div>

  </div>
</template>

<script setup>

import { countdownEmits } from 'element-plus';
import MySelect from './component/mySelect/index.vue';
import { ref, reactive, onMounted } from 'vue';

let data = ref({
  code1: '1',
  code2: 'Option2',
});

onMounted(() => {})


</script>
<style></style>

子

javascript 复制代码
<template>
  <div>
    <el-select v-model="localValue.code1" @change="change">
      <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
    </el-select>
    <el-select v-model="localValue.code2" @change="change">
      <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
    </el-select>
  </div>
</template>

<script setup>
import { ref, reactive, onMounted } from 'vue';
let emits = defineEmits(['update:modelValue'])
const props = defineProps({
  modelValue: {
    type: Object,
    default() {
      return {
        code1: '1',
        code2: '2'
      }
    }
  }
})
const localValue = reactive({ ...props.modelValue }); // 拷贝 modelValue
const options = ref([])
const change = () => {
  emits('update:modelValue', localValue)
}

onMounted(() => {
  console.log('值', props.modelValue)

  setTimeout(() => {
    options.value = [
      {
        value: 'Option1',
        label: 'Option1',
      },
      {
        value: 'Option2',
        label: 'Option2',
      },
      {
        value: 'Option3',
        label: 'Option3',
      },
    ]
  }, 10000)



})
</script>
<style scoped></style>
相关推荐
雪芽蓝域zzs5 小时前
第 5 节:Marker 点击弹出 InfoWindow 信息窗口
vue.js
回眸&啤酒鸭5 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
用户69371750013845 小时前
2026,程序员的时代拐点到了
android·前端·后端
大龄秃头程序员5 小时前
一次 iBeacon + BLE 无感解锁方案的实现记录
前端
小兔子5 小时前
Python 的 GIL 与 free-threading:3.13 之后「去 GIL」走到哪一步了
前端
IT_陈寒5 小时前
SpringBoot自动配置差点让我加班到凌晨
前端·人工智能·后端
guslegend6 小时前
脚手架原理与本地调试:从 bin 软链接到 npm link
前端·npm·node.js·脚手架·前端工程化
小宋10217 小时前
A2UI从零实战:Agent安全生成交互界面与事件回传
javascript·人工智能·安全·交互
大包子7 小时前
structuredClone vs lodash.cloneDeep:核心差异与选型指南
javascript·vue.js
海码事务所7 小时前
Google Play 新个人开发者账号上架指南:12 人连续 14 天封闭测试怎么做?
前端