需求: 地址不带参数
获取之前的数据
修改窗口名称
点击跳转组件
const msg = {
zoom :map.getZoom()-0.5,
lat: map.getCenter().lat,
dataList:data,
name:data.saveName
};
//sessionStorage.setItem("key", "value"); 页面临时缓存数据
//不能直接传对象过去 所以转成字符串
window.sessionStorage.setItem("tagUser", JSON.stringify(msg));
//打开新窗口
window.open(homePageUrl + "bookNewWindow");
main.js 注册全局指令 实现动态改变窗口名称
Vue.directive('title', {
inserted: function (el, binding,vnode ) {
/** el可以获取当前dom节点,并且进行编译,也可以操作事件 **/
/** binding指的是一个对象,一般不用 **/
/** vnode 是 Vue 编译生成的虚拟节点 **/
el.style.border="1px solid red"; //操作style所有样式
console.log(el.value); //获取v-model的值
console.log(el.dataset.title) //data-name绑定的值,需要el.dataset来获取
console.log(el.dataset.name) //data-name绑定的值,需要el.dataset来获取
console.log(vnode.context.$route); //获取当前路由信息
//给v-title标签的 data-title 属性赋值
document.title=el.dataset.title
}
})
跳转组件获取参数并改变窗口名称
<template>
//在页面最大的div上 v-title data-title=""
//v-title进行鼠标悬浮提示 :data-title='typename' 窗口显示值
<div class="newWindow" v-title :data-title='typename'>
</div>
</template>
created() {
//需要在created中赋值 窗口名字才能及时改变
let data=JSON.parse(window.sessionStorage.getItem('tagUser'))
this.typename=data.name
},
mounted() {
//获取参数
let data=JSON.parse(window.sessionStorage.getItem('tagUser'))
},