.sync使用

1..sync的常规用法

父组件中:

javascript 复制代码
<!-- 父组件 -->
<custom-dialog :visible.sync="dialogVisible">
  内容区域
</custom-dialog>
这行代码实际上会被 Vue 编译为:
javascript 复制代码
<custom-dialog 
  :visible="dialogVisible"
  @update:visible="val => dialogVisible = val"
>

子组件中:

javascript 复制代码
<script>
export default {
  props: ['visible'],
  methods: {
    close() {
      // 子组件通过触发特定事件来更新父组件数据
      this.$emit('update:visible', false)
    }
  }
}
</script>

2.封装多层组件时,需要拆解.sync,否则打开一次后报错就无法打开第二次

javascript 复制代码
<!-- 中间层组件 -->
<template>
  <div class="wrapper">
    <!-- 1. 显式绑定 prop -->
    <!-- 2. 显式监听事件并向上转发 -->
    <custom-dialog 
      :visible="visible"
      @update:visible="val => $emit('update:visible', val)"
    >
      <slot></slot>
    </custom-dialog>
  </div>
</template>

<script>
export default {
  props: {
    // 必须显式声明接收父组件传来的 visible
    visible: {
      type: Boolean,
      default: false
    }
  }
}
</script>

或简写形式

javascript 复制代码
<custom-dialog 
  :visible="visible"
  @update:visible="$emit('update:visible', $event)"
>
相关推荐
2501_9445255410 小时前
Flutter for OpenHarmony 个人理财管理App实战 - 预算详情页面
android·开发语言·前端·javascript·flutter·ecmascript
打小就很皮...10 小时前
《在 React/Vue 项目中引入 Supademo 实现交互式新手指引》
前端·supademo·新手指引
C澒10 小时前
系统初始化成功率下降排查实践
前端·安全·运维开发
摘星编程10 小时前
React Native + OpenHarmony:自定义useFormik表单处理
javascript·react native·react.js
C澒11 小时前
面单打印服务的监控检查事项
前端·后端·安全·运维开发·交通物流
pas13611 小时前
39-mini-vue 实现解析 text 功能
前端·javascript·vue.js
qq_5324535311 小时前
使用 GaussianSplats3D 在 Vue 3 中构建交互式 3D 高斯点云查看器
前端·vue.js·3d
Swift社区11 小时前
Flutter 路由系统,对比 RN / Web / iOS 有什么本质不同?
前端·flutter·ios
2601_9498333911 小时前
flutter_for_openharmony口腔护理app实战+我的实现
开发语言·javascript·flutter
雾眠气泡水@12 小时前
前端:解决同一张图片由于页面大小不统一导致图片模糊
前端