【发布时间】:2017-09-29 08:45:01
【问题描述】:
这更多是关于实践,我还没有真正的工作场景,但我可以提供一个例子。想象一下 Facebook Messenger,您在标题中有一个聊天小部件,您可以在其中快速查看和回复消息。您也可以点击查看全部跳转到消息页面。
所以对我来说,我可以看到自己有两个 Vue 组件,它们比父子组件更兄弟,因为一个将用于所有页面,另一个仅用于消息页面。
<chat></chat> and <chat-widget></chat-widget>
现在,从我所见,小部件和聊天窗口本身的功能将以相同的方式运行,也许它们的模板会略有不同,因为它们的加载位置不同,但蝙蝠的一些直接的东西是:
messages() {}
compose() {}
validate() {}
这些只是我使用 Laravel 作为后端的一些示例,我将使用 axios 在我的 Vue 前端和后端(数据库)之间发送请求。
理想情况下,我不希望这些组件复制它的功能,所以我应该简单地复制它们还是有办法可以存储某种父函数?
一个问题是由于异步 ajax 请求,我不能简单地调用一个函数来返回说我要绑定的消息,至少,我认为我不能。
只是寻找一些关于如何最好地使用 Vue 做到这一点的指导,这样我就不会在我的组件中复制相同的功能。
【问题讨论】:
-
你应该做一个容器/列表组件,有很多消息组件。
-
我无法想象这将如何工作,你能举个例子吗?我假设你说这个组件会存储消息和消息函数,而其他组件直接使用这些函数和变量?只是不明白你怎么能这样做。