From 7e0e20aacc59e41c93387761aee546305dd8bd4b Mon Sep 17 00:00:00 2001 From: qianguyihao Date: Sat, 23 Jun 2018 19:01:51 +0800 Subject: [PATCH] =?UTF-8?q?add=20Vue.js=202.x=EF=BC=9A=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E4=BC=A0=E5=80=BC=E7=9A=84=E4=B8=BE=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 21-Vue基础/06-Vue组件之间的传值.md | 159 +++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) diff --git a/21-Vue基础/06-Vue组件之间的传值.md b/21-Vue基础/06-Vue组件之间的传值.md index ba3b666..e254460 100644 --- a/21-Vue基础/06-Vue组件之间的传值.md +++ b/21-Vue基础/06-Vue组件之间的传值.md @@ -341,6 +341,165 @@ ## 案例:发表评论功能的实现 +> 该案例需要完善,目前只是为了演示 localStorage + +```html + + + + + + + + Document + + + + + +
+ + + + + + + + +
+ + + + + + + + +``` + + +上面的代码中,父组件定义了`loadComments()`方法,作用是**加载 localStorage 中的评论列表**。我们可以看到,页面在一开始加载的时候,就在create()生命周期中调用了`loadComments()`;当自组件中添加了评论之后,再次调用了`loadComments()`。 + +**待改进**: + +不过,这段代码还有些问题:页面一开始加载的时候,读取的是 localStorage 中的评论列表。如果一开始的时候,从网络获取了已存在的列表,岂不是读不到了? + +正确的做法应该是:父组件和子组件共享 list数据,每当在子组件中 添加了一条评论之后,就往 list 中添加一条 item。 + + +## 在Vue中,通过 ref 属性获取DOM元素 + +我们当然可以使用JS原生的做法(document.getElementById)或者 jQuery 来获取DOM,但是这种做法却在无形中操作了DOM,在Vue框架中并不推荐这种做法。 + + + + +### 使用 ref 属性获取整个子组件 + +根据上面的例子,我们可以得出**规律**:只要`ref`属性加在了DOM元素身上,我们就可以获取这个DOM元素。 + + + + + + + + + + + + + + +