Vue 回复组件提问

2021-05-30 13:58:56 +08:00
 Rrrrrr
我有一个留言列表,每条评论(子评论)下面都有一个回复按钮,有一个简单的做法是,把这个回复的组件和列表项一起循环。现在的问题是怎么同时只显示 一个回复的组件。
我的想法是从接口拿到列表,为每个回复新增一个 showReply 的属性,控制当前组件显示,监听评论 id 的变化,然后点击其他地方的回复,去隐藏旧的,打开新的。还有没有其他的方法简单点
1736 次点击
所在节点    Vue.js
3 条回复
shintendo
2021-05-30 15:00:20 +08:00
父组件存一个 currentId,表示当前显示回复按钮的组件 id,初始为 null
在每个列表项里,v-show="id === currentId"
Rrrrrr
2021-05-30 15:25:54 +08:00
@shintendo 换成 v-if 也可以吧
ZhangZisu
2021-05-30 22:10:47 +08:00
既然有循环,还是用 inject/provide 或 vuex 记录显示的 ID 。或者用 event hub 每开一个新的让其他的关闭

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/780137

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX