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方法注释,测试一下结果
搜索后localStorage中存有对一个的数据
清空历史搜索后,localStorage中存储的数据清除了, 但是页面中历史搜索现实的内容没有更新。
综上可知, update主要是为了在清除历史记录之后, 主动调用一次getKeyWord方法, 更新historys的值, 最终更新页面的显示内容
同学可以自己下去测试一下, 结合代码实现的效果, 帮助自己更好的理解
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~
相似问题