【发布时间】:2020-11-26 10:30:13
【问题描述】:
通过选项 API,我们可以使用这些方式来扩展组件。假设我们有 2 个组件。
Component1.vue
<script>
export default {
methods: {
init(message) {
alert(message)
}
}
}
</script>
Component2.vue
<script>
import Component1 from './Component1'
export default {
extends: Component1,
methods: {
showAlert() {
// we can access Component1 'init()' method here
this.init('Hello World!')
}
},
mounted() {
this.showAlert()
}
}
</script>
现在,如何使它与组合 API 一起工作?我检查了extends 属性在文档中仍然可用,但没有明确的用法说明。
https://v3.vuejs.org/api/options-composition.html#extends
考虑使用组合 API 的以下代码。
Component1.vue
<script>
import { defineComponent, ref } from 'vue'
export default defineComponent({
setup () {
const init = (message) => {
alert(message)
}
return {
init
}
}
})
</script>
Component2.vue
<script>
import { defineComponent, ref, onMounted } from 'vue'
import Component1 from './Component1.vue'
export default defineComponent({
extends: Component1,
setup () {
const showAlert = () => {
// How to access 'init()' method here?
}
onMounted(() => {
showAlert()
})
}
})
</script>
谢谢!
【问题讨论】:
-
你修好了吗?我认为答案是重用功能,而不是重用组件。我面临着和你一样的问题。 stackoverflow.com/questions/70866392/…@Muhammad Rizki A. 我想将公共组件嵌套到父组件中。
标签: vue.js vuejs3 vue-composition-api