目录
- 1.父组件调用子组件的方法
- 1.导入子组件
- 2.注册子组件
- 3.添加ref引用
- 4.当监听到父组件的某一个值变化时 通过ref去调用子组件reset()方法
- 1.父组件传递值给子组件
- 1. **父组件中定义并传递参数:**
- 2. **子组件中接收并使用参数:**
1.父组件调用子组件的方法
导入子组件,注册子组件,添加ref引用,通过ref去调用子组件方法
1.导入子组件
import CY_RD_PROJECT_CHANGE_RECOND from "@/extension/Cy_dev_business/tabs_view/CY_RD_PROJECT_CHANGE_RECOND.vue";
2.注册子组件
components: {"vol-box": VolBox,// CY_RD_PROJECT: CY_RD_PROJECT,CY_RD_PROJECT_CHANGE_RECOND: CY_RD_PROJECT_CHANGE_RECOND,// CY_RD_PROJECT_DETAIL: CY_RD_PROJECT_DETAIL,CY_RD_PRODUCT_DETAIL: CY_RD_PRODUCT_DETAIL,RD_PROJECT_CHANGE_RECOND_FORM: RD_PROJECT_CHANGE_RECOND_FORM,},
3.添加ref引用
有时会失效子组件没渲染等等问题
<CY_RD_PROJECT_CHANGE_RECOND ref="CY_RD_PROJECT_CHANGE_RECOND"/>
4.当监听到父组件的某一个值变化时 通过ref去调用子组件reset()方法
watch: {'model.box2': {handler(newValue, oldValue) {// console.log('box3 has changed:', newValue, 'from', oldValue);// 在这里执行相应逻辑if (newValue == false) {//重置研发方案变更和产品详细信息// console.log(this.$refs.vol-box);this.$refs.CY_RD_PROJECT_CHANGE_RECOND.$refs.mytable.reset()}},//deep: true 如果需要监听嵌套对象的属性变化,可以添加 deep: true},},
1.父组件传递值给子组件
v-bind(简写是冒号)在子组件上绑定值,子组件props接收
1. 父组件中定义并传递参数:
在父组件模板中,你需要使用 v-bind 或其简写 : 来绑定需要传递给子组件的属性值。
<!-- 父组件模板 -->
<template><div><!-- 使用v-bind:propName或简写:propName将父组件的数据传递给子组件 --><child-component :my-prop="parentData"></child-component></div>
</template><script>
import ChildComponent from './ChildComponent.vue';export default {data() {return {parentData: '这是父组件传递的数据'};},components: {ChildComponent}
};
</script>
2. 子组件中接收并使用参数:
在子组件中,你需要在 props 选项中声明你期望接收的参数。
<!-- 子组件模板 -->
<template><div>{{ myProp }}</div>
</template><script>
export default {props: {// 声明接收名为'myProp'的参数myProp: String // 可以指定类型,也可以不指定让Vue自动推断}
};
</script>
现在,当你在父组件中更改 parentData 的值时,传递给子组件的 my-prop 的值也会相应更新,并在子组件中反映出来。