watch是監視屬性。在vue中,可以透過watch屬性來監視某個屬性的變化,當這個屬性發生變化時,可以執行一些操作:1、當監視屬性所監視的屬性發生變化的時候,回調函數就會自動調用,並且執行相關的操作;2、監視屬性所監視的屬性要存在,才能產生作用。監視屬性有兩種寫法「new Vue({watch:{}})」和「vue實例化物件.$watch('屬性名'回呼函數)」。
本教學操作環境:windows7系統、vue3版,DELL G3電腦。
vue監視屬性
在開發中,我們會遇到這樣一種情況,我們需要一個屬性變化的時候,然後做出一些操作。而偵測這個變化的屬性,在vue中叫做監視屬性。
1.監視屬性是什麼
在vue中,我們可以透過watch屬性來監視某個屬性的變化,當這個屬性當發生變化時,我們可以執行一些操作。
- 當監視屬性所監視的屬性發生變化的時候,回呼函數(handler)就會自動調用,並且執行相關的操作
- 監視屬性所監視的屬性要存在,才能產生作用。
我們這裡用一個天氣案例來解釋什麼是監視屬性:
首先html程式碼:
<div id="app"> <p>今天天气很{{info}}</p> <button v-on:click="change">切换天气</button> </div>
接下來我們寫js程式碼:
var vm = new Vue({ el: "#app", data: { isHot: true, }, computed: { info: function () { return this.isHot ? "热" : "冷"; } }, methods: { change: function () { this.isHot = !this.isHot; } }, watch: { isHot: { handler:function (newVal, oldVal) { console.log("isHot属性发生了变化"); }, } } });
在程式碼裡面的handler
這個函數就是我們前面說的回呼函數,當isHot
屬性改變的時候,這個函數就會自動呼叫。
當然我們可以在idHot
物件面新增一個屬性:immediate
,當此屬性布林值為真的時候,handler
回呼函數在初始化的時候就會被呼叫一次。
watch: { isHot: { handler:function (newVal, oldVal) { console.log("isHot属性发生了变化"); }, immediate: true } }
2.監視屬性的寫法
#監視屬性有兩種寫法:
- 在vue實例化物件中直接書寫:
new Vue({watch:{}})
,然後傳入相關配置 - 透過
vue實例化物件.$watch('屬性名稱',回呼函數)
來書寫
這裡的第一種寫法上面我們已經展現過了,下面我們就展示一下第二種寫法:
這裡我們假設vue的實例化物件為vm。
vm.$watch('isHot',function (newVal, oldVal) { console.log("isHot属性发生了变化"); });
3.監視屬性之深度監視
#前面我們實現的監視,只能監視vue實例data中直接的簡單數據,要是遇到物件或數組,就無法監視了。
這樣做的方法是vue為了提高效率,在vue監視屬性中,預設只監視一層,如果要監視多層,就需要我們手動開啟深度監視。
watch: { isHot: { handler:function (newVal, oldVal) { console.log("isHot属性发生了变化"); }, immediate: true, deep: true } }
其中deep:true
就開啟了深度監視。
深度監視就是監視vue中data中的物件或是數組,當物件或數組中的屬性改變的時候,監視屬性的回呼函數就會自動呼叫。
在vue中其實是可以偵測物件內部值的變化,那為什麼vue監視屬性不預設開啟深度監視呢?
因為vue監視屬性的回呼函數是在資料發生變化的時候才會調用,如果開啟深度監視,那麼vue就要監視物件內部的所有屬性,這樣會大大降低vue的效率。
在我們使用監視屬性的時候,我們根據具體的業務需求,來判斷要不要開啟深度監視。 【相關推薦:vuejs影片教學、web前端開發】
以上是vue中watch是什麼屬性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

你可能遇到过智能手机屏幕出现绿色线条的问题,即使没见过,也一定在网络上看到过相关图片。那么,智能手表屏幕变白的情况你遇见过吗?4月2日,CNMO从外媒了解到,一名Reddit用户在社交平台上分享了一张图片,展示了三星Watch系列智能手表屏幕变白的情况。该用户写道:"我离开时正在充电,回来时就这样了,我尝试重启,但重启过程中屏幕还是这样。"三星Watch智能手表屏幕变白这位Reddit用户并未指明这款智能手表的具体型号。不过,从图片上看,应该是三星Watch5。此前,另一位Reddit用户也报告

我们都知道监听器的作用是在每次响应式状态发生变化时触发,在组合式API中,我们可以使用watch()函数和watchEffect()函数,当你更改了响应式状态,它可能会同时触发Vue组件更新和侦听器回调。默认情况下,用户创建的侦听器回调,都会在Vue组件更新之前被调用。这意味着你在侦听器回调中访问的DOM将是被Vue更新之前的状态。那么,我们来看一下,怎么才能好好的使用他们呢?他们之间又有什么区别呢?watch()函数watch需要侦听特定的数据源,比如侦听一个ref,watch的第一个参数可以

如何在watchOS10中访问控制中心自从苹果推出第一款AppleWatch以来,我们与手表互动的方式或多或少保持不变。即使在添加了如此多的新功能之后,整体用户界面也保持一致。但是watchOS10带来了重大变化!在執行watchOS9或更低版本的AppleWatch上,您可以通過在螢幕上向上轻歚來快速開啟控制中心。但是,随着watchOS10的更新,向上滑动手势会拉起全新的小部件智能堆栈,而不是控制中心。所以最大的问题是如何在WatchOS10中打开AppleWatch上的控制中心。答案如下:

react与vue的虚拟dom没有区别;react和vue的虚拟dom都是用js对象来模拟真实DOM,用虚拟DOM的diff来最小化更新真实DOM,可以减小不必要的性能损耗,按颗粒度分为不同的类型比较同层级dom节点,进行增、删、移的操作。

在VSCode中开发Vue/React组件时,怎么实时预览组件?本篇文章就给大家分享一个VSCode 中实时预览Vue/React组件的插件,希望对大家有所帮助!

本篇文章给大家分享一个Vue+Laravel开发教程,介绍一下怎么使用 Vue.js 和 Laravel 共建一个简单的 CRUD 应用,希望对大家有所帮助!

Vue中如何使用watch监听数组的变化Vue是目前前端开发中使用较广泛的框架之一,它提供了许多便捷的方式来实现数据响应式、模板渲染以及组件化等功能。在Vue中,我们经常会使用watch来监听数据的变化,但是,当需要监听数组变化时,我们需要注意一些细节。在Vue中,我们可以使用watch来监听单个属性或者对象的变化,其基本使用方式如下:watch:{

watch的本质所谓的watch,其本质就是观测一个响应式数据,当数据发生变化时通知并执行相应的回调函数。实际上,watch的实现本质就是利用了effect和options.scheduler选项。如下例子所示://watch函数接收两个参数,source是响应式数据,cb是回调函数functionwatch(source,cb){effect(//触发读取操作,从而建立联系()=>source.foo,{scheduler(){//当数据变化时,调用回调函数cbcb()}})}如上面的代


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境