方法一:
目录下新建 bus.js
// eventbus传值 new 的vue实例
import Vue from 'vue'
export default new Vue()
子组件中使用方法:
父组件:
方法二:监听sessionStorage
在main.js中添加
Vue.prototype.resetSetItem = function (key, newVal) {
if (key === 'ulIndex') {
// 创建一个StorageEvent事件
var newStorageEvent = document.createEvent('StorageEvent')
const storage = {
setItem: function (k, val) {
sessionStorage.setItem(k, val)
// 初始化创建的事件
newStorageEvent.initStorageEvent('setItem', false, false, k, null, val, null, null)
// 派发对象
window.dispatchEvent(newStorageEvent)
}
}
return storage.setItem(key, newVal)
}
}
在要监听的页面中使用:
修改值的页面:
goRouter(row) {
if (row == "purchase") {
sessionStorage.setItem("menuIndex", "7");
this.resetSetItem("ulIndex", "0");
}else{
sessionStorage.setItem("menuIndex", "8");
this.resetSetItem("ulIndex", "0");
}
this.$router.push({
name: row,
});
},