1. 程式人生 > 程式設計 >vue中的計算屬性和偵聽屬性

vue中的計算屬性和偵聽屬性

計算屬性

計算屬性用於處理複雜的業務邏輯

計算屬性具有依賴性,計算屬性依賴 data中的初始值,只有當初始值改變的時候,計算屬性才會再次計算

計算屬性一般書寫為一個函式,返回了一個值,這個值具有依賴性,只有依賴的那個值發生改變,他才會重新計算

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>表單輸入繫結</title>
</head>
<body>
 <div id="app">

  {{ reverseMsg }}---- {{ reverseMsg }}-------- {{ reverseMsg }} //直接使用計算屬性中的函式就是所要的資料

 </div>
</body>
<script src="vue.js"></script> //vue的js,不然使用不了vue語法
<script>
 const app = new Vue({
  el: '#app',data: {
   msg: 'hello world'
  },computed: {
   reverseMsg () { // 計算屬性是一個函式,返回一個值,使用和data中的選項一樣
    console.log('computed') // 執行1次 --- 依賴性
    return this.msg.split('').reverse().join('');
   }
  }
 })
</script>
</html>

偵聽屬性(監聽屬性)

vue提供了檢測資料變化的一個屬性 watch 可以通過newVal 獲取變化之後的值

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>表單輸入繫結</title>
</head>
<body>
 <div id="app">
  <input type="text" v-model="firstname"> + <input type="text" v-model="lastname"> = {{ fullname }}

 </div>
</body>
<script src="vue.js"></script>
<script>
 const app = new Vue({
  el: '#app',data: {
   firstname: '李',lastname: '小龍',fullname: '李小龍'
  },watch: { // 偵聽屬性
   firstname (newVal,oldVal) { // newVal變化之後的值
    this.fullname = newVal + this.lastname // 當改變 姓 的時候執行
   },lastname (newVal,oldVal) {
    this.fullname = this.firstname + newVal // 當改變 名字 的時候執行
   }
  }
 })
</script>
</html>

以上就是vue中的計算屬性和偵聽屬性的詳細內容,更多關於vue 計算屬性和偵聽屬性的資料請關注我們其它相關文章!