当前位置: 首页 > news >正文

vue3中父子组件数据同步的默认方式update:xxx

update:xxx 是Vue 3中实现自定义v-model的约定。它的工作原理是:

子组件通过emit('update:propName', newValue)通知父组件需要更新某个属性
父组件可以通过v-model:propName="data"或@update:propName="data = $event"来接收这个更新

父组件:

<template><div class="container"><CountShow :count="count"></CountShow><CountUpdate :count="count" @update:count="count = $event"></CountUpdate></div>
</template>
<script setup>
import { ref } from 'vue'
import CountShow from "./CountShow.vue"
import CountUpdate from "./CountUpdate.vue"
const count = ref(0)</script>
<style scoped>.container {margin-top: 20px;}
</style>

 

子组件:

<template><select v-model.number="step"><option value=1 selected>1</option><option value=2>2</option><option value=3>3</option></select><button @click="increaseCount">增加</button><button @click="decreaseCount">减少</button><button @click="oddIncreaseCount">奇数增加</button><button @click="asyncIncreaseCount">异步增加(延迟1秒)</button>
</template>
<script setup>
import { ref, computed } from 'vue'const props = defineProps({count: {type: Number,default: 0}
})
const step = ref(1)
const emit = defineEmits(['update:count'])
const increaseCount = () => {emit('update:count', props.count + step.value)
}
const decreaseCount = () => { emit('update:count', props.count - step.value)
}
const oddIncreaseCount = () => {if (props.count % 2 === 1) { emit('update:count', props.count + step.value)}
}
const asyncIncreaseCount = async () => {await new Promise(resolve => setTimeout(resolve, 1000))emit('update:count', props.count + step.value)
}
</script>

 

http://www.wxhsa.cn/company.asp?id=2033

相关文章:

  • 解决 C# 当另一个read操作挂起时不能调用read方法的问题
  • AI辅助编程_工具和方式
  • [完结10章]Java大模型工程能力必修课,LangChain4j 入门到实践
  • k8s源码分析——kubectl命令行交互
  • 将 seata 2.5 发布到私服
  • 一些感悟
  • 五款免费低代码平台深度横评:斑斑、简道云、宜搭、氚云、织信如何选?
  • ubuntu历史版本下载
  • 读书笔记:数据库索引的智能优化:反向键与降序索引
  • 代码随想录算法训练营第十天| 232.用栈实现队列、 225. 用队列实现栈、20. 有效的括号 、1047. 删除字符串中的所有相邻重复项
  • 零成本搭建企业系统:五款免费低代码平台推荐
  • 故障处理:access$表在数据库丢失的恢复
  • 从需求出发:教你判断选斑斑还是织信
  • PLC结构化文本设计模式——建造者模式(Builder Pattern)
  • C++ - STL - 迭代器
  • MATLAB的智能扫地机器人工作过程仿真
  • linux redis 8.2.1软件开机启动redis.service与etc下的rc.local配置2种方式
  • 在GA中添加Tag-GetDynamicSpecSourceTags().AddTag(NewTag)
  • python如何在函数中使用全局变量?
  • 296、贾生
  • ubuntu 24.04部署mysql8.0.41(glibc2.17)
  • C++ - STL - 键值对pair
  • 第四天学习:LSTM
  • MATLAB的稀疏自编码器实现
  • 题解:P2157 [SDOI2009] 学校食堂
  • LLM 应用开发中的常见模式
  • vue3 与 element-plus
  • 可爱的二维数据结构们
  • 网络安全相关职业
  • 202005_CTFHUB_Redis流量