如何从 vue-fullpage 包装器中的子组件调用 fullpagejs 方法?

Posted

技术标签:

【中文标题】如何从 vue-fullpage 包装器中的子组件调用 fullpagejs 方法?【英文标题】:How to call fullpagejs methods from child components in vue-fullpage wrapper? 【发布时间】:2020-09-08 10:30:29 【问题描述】:

我不明白你应该如何从 vue 子组件中调用 fullpagejs 方法,或者更确切地说是任何不是*** App.vue 组件的组件。

fullpage 的 vue 包装器限制您在整个应用程序中仅使用一次 fullpage 组件,因此我无法在任何子组件中使用 this.$refs.fullpage.api 调用任何方法。

我想要一些触发导航方法的可点击元素,例如嵌套在较低级别的组件中的moveTo

作者打算如何让 vue 应用使用 App.vue 之外的方法?

我能找到的唯一可行的东西似乎相当老套;我有子组件通过 $root.children[0] 从 App.vue 调用方法。

我应该以某种方式将整页引用作为道具传递吗?

我知道道具和事件,但编写代码将事件冒泡到 4-5 层子组件似乎非常乏味。

我尝试使用单独的 vue 实例制作事件总线,但事件总线实例无权访问 App.vue 中的方法。

感觉好像错过了什么。

fullpage 是否只要求您在App.vue 中整合对 fullpage api 的所有方法调用?

【问题讨论】:

【参考方案1】:

来自文档:

//where --> var vm = new Vue(...) if calling it from outside.
vm.$refs.fullpage.build();

//or, when calling it from inside the Vue component methods:
this.$refs.fullpage.build();

您还可以使用位于窗口对象中的全局对象:fullpage_api。例如:fullpage_api.moveSectionDown()

如果您知道如何改进您的用例,请随时创建拉取请求,我很乐意将其合并到组件中! :)

【讨论】:

以上是关于如何从 vue-fullpage 包装器中的子组件调用 fullpagejs 方法?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Next.js 摆脱 redux 包装器中的控制台日志

用户从 xcode 中的多组件选择器中选择某些值后,如何显示某个消息/警报?

如何包装返回多个表行的 React 组件并避免“<tr> 不能作为 <div> 的子级出现”错误?

如何在 API 中隐藏迭代器以使用 std::map 包装器中的项目

如何从 React 中的子组件更新父组件(功能)

如何从 blazor 中的子组件获取属性