zoukankan      html  css  js  c++  java
  • Vue.js学习使用心得(三)

    一、计算属性

    计算属性关键词: computed

    <body>
    <div id="app">
      <p>原始字符串: {{ message }}</p>
      <p>计算后反转字符串: {{ reversedMessage }}</p>
    </div>
    
    <script>
    var vm = new Vue({
      el: '#app',
      data: {
        message: '糖果波!'
      },
      computed: {
        // 计算属性的 getter
        reversedMessage: function () {
          // `this` 指向 vm 实例
          return this.message.split('').reverse().join('')
        }
      }
    })
    </script>

    我们可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在重新渲染的时候,函数总会重新调用执行。

     computed 属性默认只有 getter ,不过在需要时你也可以提供一个 setter

    下面例子通过getter获取数据,通过setter设置数据。

    <div id="app">
      <p>{{ site }}</p>
    </div>
    
    <script>
    var vm = new Vue({
      el: '#app',
      data: {
        name: 'AAA',
        description: 'BBBBBBBB'
      },
      computed: {
        site: {
          // getter
          get: function () {
            return this.name + ' ' + this.description
          },
          // setter
          set: function (newValue) {
            var names = newValue.split(' ')
            this.name = names[0]
            this.description = names[names.length - 1]
          }
        }
      }
    })
    // 调用 setter, vm.name 和 vm.url 也会被对应更新
    vm.site = '糖果波 女孩';
    document.write('name: ' + vm.name);
    document.write('<br>');
    document.write('description: ' + vm.description);
    </script>

    当setter生效时,原data属性也会发生改变。

    二、监听属性

    Vue.js 监听属性 watch,可以通过 watch 来响应数据的变化。

    下面例子通过点击事件监测点击次数。

    <div id = "app">
     <p style = "font-size:25px;">计数器: {{ counter }}</p>
     <button @click = "counter++" style = "font-size:25px;">点我</button>
    </div>
        <div id= "aa"></div>
    <script type = "text/javascript">
     var vm = new Vue({
        el: '#app',
        data: {
           counter: 1
        }
     });
     vm.$watch('counter', function(nval, oval) {
         document.getElementById("aa").innerHTML="<h3>计数器值的变化 :" + oval + " 变为 " + nval + "!</h3>";
     });
    </script>

    由此可以监听数据的变化,进行事件响应,并得到变化前的值和变化后的值。

  • 相关阅读:
    如何使用谷歌学术
    联合省选 2021 游记
    生成one-hot的方法
    GraphSAGE
    maven仓库如何引入本地jar包,Maven多种方式打可执行jar包
    DDL任务管理语句
    使用本地EDAS注册多个中台服务,供本地测试使用
    启动轻量级配置及注册中心EDAS
    端口被占用如何解决
    java8中Collectors.groupingBy 用法
  • 原文地址:https://www.cnblogs.com/tangguobo/p/10078298.html
Copyright © 2011-2022 走看看