设为首页 加入收藏

TOP

Vue 常用指令(五)
2019-09-17 15:21:16 】 浏览:75
Tags:Vue 常用 指令
v-model.trim="django"/></td> </tr> </tbody> </table> </div> <script> let app01 = new Vue({ el: "#app01", data: { python: 75, web: 98, django: 88 } }) </script> </body> </html


常用指令:计算属性

计算属性用来监听多个数据,每次页面加载,计算属性中的函数立即执行,但是只要原数据不被修改,那么,就不会触发重新计算,计算属性会使用计算后的缓存结果,只当原数据修改时,才会重新计算并将结果缓存起来。计算属性的计算结果可以当做data中的数据一样使用。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./vue.js"></script>
</head>
<body>
    <div id="app01">
        <table border="1">
            <thead>
                <tr>
                    <th>学科</th>
                    <th>成绩</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>Python基础</td>
                    <td><input type="text" v-model.number="python"/></td>
                </tr>
                <tr>
                    <td>前端</td>
                    <td><input type="text" v-model.trim="web"/></td>
                </tr>
                <tr>
                    <td>Django</td>
                    <td><input type="text" v-model.lazy="django"/></td>
                </tr>
                <tr>
                    <td>总分</td>
                    <td>{{ python + web + django }}</td>
                </tr>
                <tr>
                    <td>平均分</td>
                    <td>{{ avgScore }}</td>
                </tr>
            </tbody>
        </table>
    </div>

    <script>
        // 计算属性放在缓存当中,只有数据修改时才重新计算
        let app01 = new Vue({
            el: "#app01",
            data: {
                python: 75,
                web: 98,
                django: 88
            },
            computed: {
                sumScore: function () {
                    return this.python + this.web + this.django;
                },
                avgScore: function () {
                    return this.sumScore/3;
                }
            }
        })
    </script>

</body>
</html>

计算属性是通过过滤多个数据之后的结果,不一定是data中已存在的数据。


常用指令:侦听属性

计算属性用来监听多个属性,我们也可以使用它来监听一个属性,但是页面加载即执行计算并不符合我们的需求,如何只在数据被修改后出发相应事件,vue提供给我们的是watch,即侦听属性。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../statics/vue.min.js"></script>
</head>
<body>
  <div id="app">
    <p>Original message: {{ message }}</p>
    <p>Computed message: {{ reversedMessage }}</p>
    <p>Full name: {{ fullName }}</p>
    <p><input type="text" v-model="firstName"/></p>
    <p><input type="text" v-model="lastName"/></p>
  </div>

  <script>
    new Vue({
      el: "#app",
      data: {
        message: "Hello Vue!",
        firstName: "Foo",
        lastName: "Bar",
        fullName: "Foo Bar",
      },
      computed: {
        reversedMessage: {
          get: function () {
            console.log(1);
            // 多次刷新reversedMessage不会改变, 除非message发生改变
            return this.message.split('').reverse().join('');
          }
        }
      },
      watch: {
        firstName: function (value) {
          console.log(value);
          this.fullName = value + ' ' + this.lastName
        },
        lastName: function (value) {
          console.log(value);
          this.fullName = this.firstName + ' ' + value
        }
      }
    })
  </script>
</body>
</html>

侦听属性必须是data中的已存在的数据。


常用指

首页 上一页 2 3 4 5 6 7 下一页 尾页 5/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇小tips:JS/CSS实现字符串单词首.. 下一篇JS核心之DOM操作 下

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目