Vue开发非父子组件间的数据共享、传递、缓存

通过自己的学习Vue开发总结啦分父子组件间的数据共享、传递、缓存等有以下几种方式,工大家参考。

1. Vue的事件广播以及事件的监听具体实现流程如下:

① 定义一个 VueEvent.js 引入Vue 实例化一个 Vue对象 然后暴露出去;

② 项目有两个 组件 一个home 一个news ,实现home组件向 news 组件传递数据,首先在home组件中 实现点击按钮向news 组件广播数据:



③ news组件实现 监听广播并接收数据:


运行项目就可以实现非父子组件之间的传值。

2. 不同路由及路由间的传值



当然在绑定 to 方法传值的时候也可以使用 :to=“‘/content?aid=’+key” 这种方式称为Vue的get 传值,然后取值的时候使用:this.$route.query 即可获取传递的参数值,

注意:上述取值的方法里面 是用的 $route 而非 $router 二者是有区别的,需注意下。

3. 就是使用Vuex 实现数据的共享和使用,我们都知道 Vue是MVVM模型的前端框架,动态的数据双向绑定。

① 创建一个vuex的文件夹,新建 store.js ,具体说明参考图片中注释:


② 在组件中引入 vuex 并声明,在页面上实现一个IncCount方法的按钮,里面实现调用vuex 里面定义的 count++ 的方法,运行项目就可以实现点击按钮,count 递增的效果。

③ 在另外一个组件中同样的方式 引入vuex 然后使用 vuex的 全局变量


④ 这样你在 home组件中点击按钮 是count 递增,而 news 组件中的变量跟随点击而递增 变化这样就实现了不同组件间的数据共享

最后 H5里面也有提供方法 但是针对不同浏览器的缓存机制不同 可能效果不是太理想但是 可以试想不同页面间的数据共享和传递,就是 直接使用 localStorage 和 SessionStorage 都可以实现数据的暂时存储及取出。

如有披露或问题欢迎留言或者入群探讨,群里有分享Vue 视频教程以及其他学习视频资料

猜你喜欢

转载自blog.csdn.net/qq_39470733/article/details/80729508