浅谈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>

 

posted @ 2019-09-26 16:14  LC蜗牛  阅读(611)  评论(0编辑  收藏  举报