vue2中监听localStorage.getItem('yearType')的变化
时间: 2024-11-04 15:14:59 浏览: 44
在 Vue.js v2 中,为了监听 `localStorage.getItem('yearType')` 的变化,你可以使用 Vue 的 `watch` 钩子或者 `$watch` 方法来实现数据劫持的效果。以下是两种方法:
1. 使用 `watch` 对象:
```javascript
export default {
data() {
return {
yearType: localStorage.getItem('yearType'),
};
},
watch: {
yearType(newVal, oldVal) {
if (newVal !== oldVal) {
// 当 'yearType' 变化时,这里处理新的值
console.log(`yearType changed from ${oldVal} to ${newVal}`);
}
},
},
};
```
2. 使用计算属性和 `$watch`:
```javascript
import { computed } from "vue";
export default {
setup() {
const yearType = computed(() => localStorage.getItem('yearType'));
Object.defineProperty(this, "$watch", {
configurable: true,
enumerable: false,
value: function (key, callback) {
this.$watch(key, callback);
},
});
this.$watch("yearType", (newVal, oldVal) => {
if (newVal !== oldVal) {
console.log(`yearType changed from ${oldVal} to ${newVal}`);
}
});
return { yearType };
},
};
```
这两种方法都能实时监听 `yearType` 是否从本地存储改变,并在发生变化时执行相应的回调函数。
阅读全文