vue知识点总结
vue2知识点总结
watch:
watch
是 Vue 提供的一个选项,它允许你观察 Vue 实例上的数据变化。当观察的数据发生变化时,会执行相应的回调函数,这样你就可以对数据的变化做出响应,执行一些特定的操作。
export default {
data() {
return {
message: ''
};
},
watch: {
message(newValue, oldValue) {
console.log('message 从', oldValue,'变成了', newValue);
}
}
};
- 在上述代码中:
watch
是 Vue 组件的一个选项,是一个对象。message
是要观察的数据属性。message
的值是一个函数,这个函数接收两个参数:newValue
和oldValue
。- 当
message
的值发生变化时,该函数会被调用,newValue
表示变化后的新值,oldValue
表示变化前的旧值。
-
数据监听和响应:
- 最常见的使用场景是当某个数据发生变化时,需要执行一些逻辑,例如发送网络请求、更新另一个数据或执行一些计算操作。
export default { data() { return { searchText: '', searchResults: [] }; }, watch: { searchText(newValue) { // 当 searchText 发生变化时,发起网络请求 this.fetchSearchResults(newValue); } }, methods: { async fetchSearchResults(query) { // 发送网络请求 const results = await fetch(`/api/search?query=${query}`); this.searchResults = await results.json(); } } };
- 在这个例子中,当
searchText
的值发生变化时,会调用fetchSearchResults
方法发送网络请求并更新searchResults
的值。
-
深度监听:
- 当要观察的数据是一个对象或数组时,默认情况下,
watch
只会观察到对象或数组的引用是否发生变化,而不会观察对象或数组内部元素的变化。如果需要深度观察对象或数组内部元素的变化,可以使用deep: true
。 - 在这个例子中,使用
deep: true
对user
对象进行深度观察,当user
对象内部的name
或age
发生变化时,handler
函数会被调用。
export default { data() { return { user: { name: '', age: 0 } }; }, watch: { user: { handler(newValue, oldValue) { console.log('user 对象发生了变化'); }, deep: true } } };
- 当要观察的数据是一个对象或数组时,默认情况下,
-
立即执行:
- 有时你可能希望在组件创建时就立即执行
watch
的回调函数,可以使用immediate: true
。 - 这个例子中,使用
immediate: true
,会在组件创建时立即执行handler
函数,打印出count
的初始值。
computed和watch的区别:export default { data() { return { count: 0 }; }, watch: { count: { handler(newValue) { console.log('count 的值为', newValue); }, immediate: true } } };
- 有时你可能希望在组件创建时就立即执行
computed
:- 主要用于计算属性,根据依赖的数据自动计算出新的值。
- 计算属性是基于它们的依赖进行缓存的,只有依赖的数据发生变化时才会重新计算。
- 适合于根据其他数据计算出一个新的值,例如根据
firstName
和lastName
计算出fullName
。 watch
:- 主要用于观察数据的变化并执行相应的操作。
- 更侧重于执行一些异步或复杂的逻辑,例如发送网络请求、修改其他数据等。
原文地址:https://blog.csdn.net/2301_81253185/article/details/145248516
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!