VUE3+elementPlus之 子组件直接修改父组件的值(父子组件props双向绑定)

直接上代码:
子组件:

<el-tree @node-click="handleNodeClick" />
//组合式api
const props = defineProps({
   
  modelValue: {
   
    type: [Number],
    default: undefined,
  },
});
interface Tree {
   
  id: number;
  name: string;
  children?: Tree[];
}
/** 部门树节点 Click */
const emits = defineEmits(["node-click"]); // 自定义emits事件
const deptId = useVModel(props, "modelValue", emits); // 通过useVModel将子组件props与父组件modelValue双向绑定

const handleNodeClick = (data: Tree) => {
   
  deptId.value = data.id;
  emits("node-click");
};

父组件:

<dept-tree v-model="searchParam.deptId" @node-click="tableSearch" />
//定义参数、方法略

通过 useVModel 函数将子组件的 deptId 和父组件中的 modelValue 进行了双向绑定。这意味着当子组件中的 deptId 发生变化时,父组件中的 modelValue 也会相应地进行更新。
需要注意的是,Vue 推荐使用组件之间的 props 和事件来进行父子组件之间的通信,而不是直接修改父组件的值。但是,使用 v-model 可以简化双向绑定的操作,使代码更加简洁。

最近更新

  1. TCP协议是安全的吗?

    2024-01-22 12:18:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-22 12:18:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-22 12:18:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-22 12:18:02       20 阅读

热门阅读

  1. C Primer Plus(第六版)13.10 复习题 第4题

    2024-01-22 12:18:02       30 阅读
  2. webpack 中的loader 和plugin的区别

    2024-01-22 12:18:02       33 阅读
  3. 考研英语单词10

    2024-01-22 12:18:02       28 阅读
  4. selenium的其它使用方法

    2024-01-22 12:18:02       33 阅读
  5. Node.js 的安装教程

    2024-01-22 12:18:02       36 阅读
  6. 什么是UML?有什么用?

    2024-01-22 12:18:02       25 阅读
  7. STM32WLE5JC学习

    2024-01-22 12:18:02       31 阅读
  8. 如何有效开展网络安全事件调查工作

    2024-01-22 12:18:02       29 阅读