We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
答案:
解析:
第一种方法是直接在子组件中通过 this.$parent.event 来调用父组件的方法
父组件
<template> <div> <child></child> </div> </template> <script> import child from '~/components/dam/child'; export default { components: { child }, methods: { fatherMethod() { console.log('测试'); } } }; </script>
子组件
<template> <div> <button @click="childMethod()">点击</button> </div> </template> <script> export default { methods: { childMethod() { this.$parent.fatherMethod(); } } }; </script>
第二种方法是在子组件里用$emit 向父组件触发一个事件,父组件监听这个事件就行了
<template> <div> <child @fatherMethod="fatherMethod"></child> </div> </template> <script> import child from "~/components/dam/child"; export default { components: { child }, methods: { fatherMethod() { console.log("测试"); } } }; </script>
<template> <div> <button @click="childMethod()">点击</button> </div> </template> <script> export default { methods: { childMethod() { this.$emit("fatherMethod"); } } }; </script>
第三种是父组件把方法传入子组件中,在子组件里直接调用这个方法
<template> <div> <child :fatherMethod="fatherMethod"></child> </div> </template> <script> import child from "~/components/dam/child"; export default { components: { child }, methods: { fatherMethod() { console.log("测试"); } } }; </script>
<template> <div> <button @click="childMethod()">点击</button> </div> </template> <script> export default { props: { fatherMethod: { type: Function, default: null } }, methods: { childMethod() { if (this.fatherMethod) { this.fatherMethod(); } } } }; </script>
The text was updated successfully, but these errors were encountered:
还可以通过依赖注入的方式,父组件通过provide传入方法,子组件通过inject接收;这个方法可以解决更深层次的嵌套;而$parent.event只能解决上一级
Sorry, something went wrong.
No branches or pull requests
答案:
解析:
第一种方法是直接在子组件中通过 this.$parent.event 来调用父组件的方法
父组件
子组件
第二种方法是在子组件里用$emit 向父组件触发一个事件,父组件监听这个事件就行了
父组件
子组件
第三种是父组件把方法传入子组件中,在子组件里直接调用这个方法
父组件
子组件
The text was updated successfully, but these errors were encountered: