vue项目中,两个兄弟页面,首先在a页面中定义一个变量存储在本地缓存中,其次在b页面改变缓存中的变量的值,需要a页面也能监听到b页面变量的改变,同时a页面使用完整实例代码
时间: 2023-12-10 21:37:58 浏览: 70
在a页面中定义一个变量存储在本地缓存中:
```javascript
// 存储数据到本地缓存
localStorage.setItem('myData', JSON.stringify({name: '张三', age: 18}));
// 读取本地缓存中的数据
let myData = JSON.parse(localStorage.getItem('myData'));
```
在b页面中改变缓存中的变量的值:
```javascript
// 读取本地缓存中的数据
let myData = JSON.parse(localStorage.getItem('myData'));
// 修改数据
myData.name = '李四';
// 存储数据到本地缓存
localStorage.setItem('myData', JSON.stringify(myData));
```
需要a页面也能监听到b页面变量的改变,可以使用Vue.js的`watch`方法来监控变量的改变:
```javascript
// 定义Vue实例
new Vue({
el: '#app',
data: {
myData: {}
},
created() {
// 读取本地缓存中的数据
this.myData = JSON.parse(localStorage.getItem('myData'));
// 监听变量的改变
this.$watch('myData', (newVal, oldVal) => {
console.log('myData changed:', newVal, oldVal);
}, { deep: true }); // 需要深度监听对象的属性变化
},
methods: {
// 修改myData.name的值,并存储到本地缓存
changeName() {
this.myData.name = '王五';
localStorage.setItem('myData', JSON.stringify(this.myData));
}
}
});
```
完整实例代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vue页面间通信</title>
</head>
<body>
<div id="app">
<p>姓名:{{myData.name}}</p>
<p>年龄:{{myData.age}}</p>
<button @click="changeName">修改姓名</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
// 定义Vue实例
new Vue({
el: '#app',
data: {
myData: {}
},
created() {
// 读取本地缓存中的数据
this.myData = JSON.parse(localStorage.getItem('myData'));
// 监听变量的改变
this.$watch('myData', (newVal, oldVal) => {
console.log('myData changed:', newVal, oldVal);
}, { deep: true }); // 需要深度监听对象的属性变化
},
methods: {
// 修改myData.name的值,并存储到本地缓存
changeName() {
this.myData.name = '王五';
localStorage.setItem('myData', JSON.stringify(this.myData));
}
}
});
</script>
</body>
</html>
```
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)