欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Vue中的计算属性和侦听器

程序员文章站 2022-05-17 07:58:06
...
<!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里面引入,避免闪屏问题 -->
  <script src="./vue.js"></script>
</head>
<body>
  <div id="root">
    <!-- 双向数据绑定 -->
    姓:<input v-model = "firstName"/>
    名:<input v-model = "lastName"/>
    <div>全名:{{fullName}}</div>
    <div>侦听器:{{count}}</div>
  </div>
    
  <script>
    new Vue({
      el: "#root",
      data:{
        firstName:'',
        lastName:'',
        count: 0,
      },
      // 计算属性 代表一个属性是由其他属性计算而来。只有依赖的属性发生变化时才会变化
      // 如果子项没有改变,每次使用fullName时会使用上一次计算的缓存结果
      computed:{
        fullName: function(){
          return this.firstName + '' + this.lastName
        }
      },
      // 侦听器 以下两个属性任何一个发生变化都会侦听到
      // watch: {
      //   firstName: function(){
      //     this.count ++
      //   },
      //   lastName : function(){
      //     this.count ++
      //   }
      // }
      // 侦听器 直接监听全名变化
      watch: {
        fullName: function(){
          this.count ++
        }
      }
    })
  </script>
</body>
</html>