Vue父子组件传递笔记
Vue父子组件传递笔记
props 父组件向子组件进行传值
(1)在父组件APP.vue
<template><div>
<!-- 给子组件Child.vue传递以msg的信号,传递的信息内容为messages --><Child :msg="messages"></Child></div>
</template>
<script>
import { ref } from 'vue';
import Child from './components/Child.vue';export default {components: {Child},
};data() {return {
<!-- 2、给要传递的值配值 -->messages : "这是父组件传到子组件的值"}},</script>
(2) 在子组件中:
<template><div><!-- 4、在子组件中调用msg --><h2>子组件收获到父组件传来的值:{{ msg }}</h2></div></template><script>export default {props: {<!-- 3、在子组件中写入props,然后声明传过来的msg的类型type和默认值default -->msg:{type:String,default:"默认值,没收到"}}, };
emit 子组件向父组件传值(自定义 事件)
(1) 在子组件Child.vue中:
<!--1、自定义一个事件 @click="xxxx" --><!--2、在方法中发射"xxxx"事件的传递,this.$emit("信号名",传递值abc)--># 示例:<template><div><button @click="send2father">点击,向父组件发射值</button></div></template><script>export default {data() {return {child_data:"我是子组件的值",}},
methods:{send2father(){this.$emit("childmethod",this.child_data);}
}};</script>
(2)在父组件App.vue中:
<!--3、在父组件中,@信号名="获取到数据方法">
<!-- 4、在方法中 实现这个函数:获取到数据方法(传递值abc)-->#示例:
<template><div>
<!-- 子组件以emit发射childmethod这个信号,然后可以用repair方法来使用传回来的数据 --><Child @childmethod="repair"></Child></div>
</template><script>
import Child from './components/Child.vue';
export default {components: {Child},
methods: {repair(value){console.log(value + "接收到了");# 这里的value == 子组件传递的child_data}
}
</script>