父组件中引入子组件,子组件使用emit像父组件注册事件,并可传递数据,父组件在子组件标签上就能绑定子组件注册的事件并能接收子组件传递过来的数据
关键代码:
子组件category.vue
<template> <el-tree @node-click="nodeclick"></el-tree> </template> <script> export default { methods: { nodeclick(data, node, component) { console.log("子组件category的节点被点击", data, node, component); //向父组件发送事件; this.$emit("tree-node-click", data, node, component); } }, }; </script> <style> </style>
父组件attrgroup.vue
<template> <el-row :gutter="20"> <el-col :span="6"> <category @tree-node-click="treenodeclick"></category> </el-col> </el-row> </template> <script> /** * 父子组件传递数据 * 1)、子组件给父组件传递数据,事件机制; * 子组件给父组件发送一个事件,携带上数据。 * // this.$emit("事件名",携带的数据...) */ //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等) //例如:import 《组件名称》 from '《组件路径》'; import Category from "../common/category"; export default { //import引入的组件需要注入到对象中才能使用 components: { Category}, methods: { //感知树节点被点击 treenodeclick(data, node, component) { console.log('从子组件传递过来的数据',data,node,component) }, } }; </script> <style> </style>