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>
相关推荐
迷雾漫步者2 小时前
React封装倒计时按钮
前端·react.js·前端框架
2301_795168583 小时前
javascript基础从小白到高手系列一十二:JSON
javascript·udp·json
LCG元4 小时前
Vue.js组件开发-如何实现路由懒加载
vue.js
m0_672449604 小时前
基础vue3前端登陆注册界面以及主页面设计
前端·vue.js·elementui
匹马夕阳4 小时前
Vue3中使用组合式API通过路由传值详解
前端·javascript·vue.js
zpjing~.~4 小时前
VUE中css样式scope和deep
前端·css·vue.js
LCG元4 小时前
Vue.js组件开发-如何实现表头搜索
vue.js
风茫4 小时前
如何在vue中渲染markdown内容?
前端·javascript·vue.js
蓝黑20205 小时前
从Vant图标的CSS文件提取图标文件
前端·css·python·vant