update更新的是哪里的内容?为什么要更新?

来源:2-6 Confirm组件

soso_crazy

2019-08-21 12:14:48

clearAllSearchHistorys() {
  // 删除一条历史记录后,需要更新
  this.$refs.history.clear();
  this.$refs.history.update();
}

在history.vue中
clear() {
  storage.remove(SEARCH_HISTORY_KEYWORD_KEY);
}

update() {
  this.getKeyword();
},

// 获取历史记录的存储数据
getKeyword() {
  // 判断get方法返回的内容是否是undefined,如果是用传入的空数组,否则用返回的数据内容
  this.historys = storage.get(SEARCH_HISTORY_KEYWORD_KEY, []);
},

我的理解是在confirm组件按了清空历史记录,在localStorage里SEARCH_HISTORY_KEYWORD_KEY的键值内容会被完全删除,然后再次读取历史记录后是空数组。但是为什么删除后还要再次读取历史记录的localStorage的内容?

写回答

1回答

好帮手慕慕子

2019-08-21

同学你好, update更新的是历史搜索这块显示内容。

因为当我们点击确定清空历史搜索的时候, 我们只是将localStorage中对应的历史删除掉, 但是此时不会触发getKeyWord方法,更新historys的值,所以此时虽然删除了localStorage中的数据,但是页面中显示的数据没有改变。 

可以将update方法中调用getKeyWord方法注释,测试一下结果

http://img.mukewang.com/climg/5d5cfce70001c77a11750881.jpg

搜索后localStorage中存有对一个的数据

http://img.mukewang.com/climg/5d5cfdb90001fb8918510686.jpg

清空历史搜索后,localStorage中存储的数据清除了, 但是页面中历史搜索现实的内容没有更新。

http://img.mukewang.com/climg/5d5cfdd60001cd5e18500707.jpg

综上可知, update主要是为了在清除历史记录之后, 主动调用一次getKeyWord方法, 更新historys的值, 最终更新页面的显示内容

同学可以自己下去测试一下, 结合代码实现的效果, 帮助自己更好的理解

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

0

0 学习 · 10739 问题

查看课程