vue监听缓存数据(localStorage)

这篇具有很好参考价值的文章主要介绍了vue监听缓存数据(localStorage)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方法:可以重写localStorage的setItem方法,当调用setItem方法设置新值的时候,会new
Event(‘setItemEvent’) 用window.dispatchEvent()这个方法来派发一个事件,让window去监听

以下demo实现的是 一个页面获取诗句 然后将获取的数据用localStorage存储起来 另一个页面进行监听 一旦数据发生改变 则控制台打印 ‘值改变了’ 并将新值打印出来

实现步骤:

1.先在src下新建utils文件夹,新建tools.js,写一个dispatchEvent派发事件 如:utils/tools.js

代码如下:

function dispatchEventStroage () {
    const signSetItem = localStorage.setItem
    localStorage.setItem = function (key, val) {
        let setEvent = new Event('setItemEvent')
        setEvent.key = key
        setEvent.newValue = val
        window.dispatchEvent(setEvent)
        signSetItem.apply(this, arguments)
    }
}
 
export default dispatchEventStroage

2.在main.js里面全局引入tools,并use 以便二个vue组件能够触发派发事件

import tools from ‘./utils/tool.js’
Vue.use(tool)

3.在一个vue组件当中向localStorage存储数据 这里是将获取到的诗句存储起来

sendSentences.vue组件

 
methods: {
    getSentences() {
      axios({
        url: 'https://api.apiopen.top/api/sentences'
      }).then(res => {
        this.sentencesTitle = res.data.result.from
        this.sentences = res.data.result.name
        window.localStorage.setItem('gsStorename', JSON.stringify(this.sentences))
      })
    }
  }

在另一个vue组件当中监听localStorage数据变化,来赋值,监听要写在mounted ()中,这里将打印‘值改变了’,并将每次变化后的新值打印出来了 代码如下

watchSentences.vue组件

mounted() {
    // 监听localhostStorage的数据变化,结合utils/tool.js配合使用
    window.addEventListener('setItemEvent', function(e) {
      const newdata = JSON.parse(e.newValue)
      console.log('值改变了',newdata)
    })
  }

vue监听缓存数据(localStorage)
vue监听缓存数据(localStorage)文章来源地址https://www.toymoban.com/news/detail-474772.html

到了这里,关于vue监听缓存数据(localStorage)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue 重写数组的七个方法

    一、为什么要重写数组方法? Vue 为了实现响应式数据绑定,需要能够捕获到数据的变化,以便在数据发生改变时自动更新视图。JavaScript 中的数组是引用类型,所以常规的引用跟踪机制不能捕获数组内部的变化。因为Vue的响应式是通过 Object.defineProperty()实现的,这个api没办法

    2024年02月12日
    浏览(33)
  • Vue使用keep-alive设置哪些组件可以被缓存,哪些不被缓存

    需求:当一个项目中,不是所有的组件页面都需要缓存起来,因为有些页面是不需要的    $route.meta.keepAlive 判断当前组件是否有keepAlive属性 在路由js文件中在配置路由规则的时候配置  

    2024年02月16日
    浏览(32)
  • uniapp下拉刷新+数据缓存+自定义头部+事件监听注册

    pages.json 设置对应页面 enablePullDownRefresh 属性,激活下拉。 在 js 中定义 onPullDownRefresh 处理函数(和 onLoad 等生命周期函数同级),监听该页面用户下拉刷新事件。 需要在 pages.json 里,找到的当前页面的 pages 节点,并在style选项中开启 enablePullDownRefresh 当处理完数据刷新后,

    2024年02月02日
    浏览(33)
  • C# WPF数据绑定方法以及重写数据模板后数据绑定

    写在前面 本文将会介绍WPF如何 实现前后端数据绑定 和在进行 数据绑定时常用的方法和类 以及对于DataGrid、ListView这样的控件 重写数据模板后控件如何进行数据绑定 。 本文主要针对于数据绑定的基础实现进行介绍,通过此博文你将会有能力编写一个MVVM设计模式的C#、WPF项目

    2023年04月17日
    浏览(34)
  • Vue页面监听键盘按键的多种方法

    在Vue页面中,可以使用多种方法来监听键盘按键。以下是至少五种常用的方法: 使用 @keydown 或 @keyup 指令来绑定键盘按键事件。 使用 v-on 指令来绑定键盘按键事件。 使用 window.addEventListener 来全局监听键盘按键事件。 使用 vue-shortkey 插件来监听键盘按键。 使用 keydown 事件监

    2024年02月07日
    浏览(29)
  • Vue中 数据改变但未渲染的问题,页面中并没有自动更新,但是在控制台可以打印出来,常见解决方法

    在Vue组件中,在mounted阶段调用了一个函数去请求异步数据,将返回结果赋给data里面的值却失败了,赋值完console.log()出来明明是有值的,但页面却没有更新过来。我还一直以为是nuxt生命周期的原因,但明显不是。因为这个问题只有在偶尔才会出现,并不是每次进入页面时渲染

    2024年02月05日
    浏览(38)
  • vue中使用watch监听同时监听两个数据

    使用场景,创建一个子组件,父组件会向子组件中穿递一个状态 - \\\"status\\\" ,子组件需要同时监听this.$route.params中的值和status,然后再去调方法,所以需要同时监听

    2024年02月11日
    浏览(32)
  • Redis 重写 AOF 日志期间,主进程可以正常处理命令吗?

    重写 AOF 日志的过程是怎样的? Redis 的重写 AOF 过程是由后台子进程 bgrewriteaof 来完成的,这么做有以下两个好处。 子进程进行 AOF 重写期间,主进程可以继续处理命令请求,从而避免阻塞主进程 子进程带有主进程的数据副本。这里使用子进程而不是线程,是因为如果使用线

    2024年02月11日
    浏览(29)
  • 还没搞懂重写和重载吗?这篇文章可以帮助你

    首先,会大致介绍一下什么叫做向上转型,方便后续的理解 提示:以下是本篇文章正文内容,下面案例可供参考 向上转型是Java的一个多态性的表现形式。指的是一个子类的对象赋值给父类类型的引用变量。换句话说,它是将一个对象转换为它的父类类型。 在上述示例中,

    2024年02月06日
    浏览(40)
  • 【vue3】wacth监听,监听ref定义的数据,监听reactive定义的数据,详解踩坑点

    假期第二篇,对于基础的知识点,我感觉自己还是很薄弱的。 趁着假期,再去复习一遍 之前已经记录了一篇【vue3基础知识点-computed和watch】 今天在学习的过程中发现,之前记录的这一篇果然是很基础的,很多东西都讲的不够细致 话不多说,进入正题: vue2中的watch写法,(

    2024年02月07日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包