vue学习路线(11.watch对比computed)

一、通过案例对比computedwatch

姓名案例(输入框分别输入姓和名,全名展示姓名的组合)

1.通过computed实现

xml 复制代码
  <body>
    <div id="app">
      姓:<input v-model="firstName" /><br /><br />
      名:<input v-model="lastName" /><br /><br />
      全名:<span>{{fullName}} </span>
    </div>
    <script type="text/javascript">
      const vm = new Vue({
        el: "#app",
        data() {
          return {
            firstName: "张",
            lastName: "三",
          };
        },
        computed: {
          fullName() {
            return this.firstName + "-" + this.lastName;
          },
        },
      });
    </script>
  </body>

2.通过watch实现

xml 复制代码
  <body>
    <div id="app">
      姓:<input v-model="firstName" /><br /><br />
      名:<input v-model="lastName" /><br /><br />
      全名:<span>{{fullName}} </span>
    </div>
    <script type="text/javascript">
      const vm = new Vue({
        el: "#app",
        data() {
          return {
            firstName: "张",
            lastName: "三",
            fullName: "",
          };
        },
        watch: {
          firstName(val) {
            this.fullName = val + "-" + this.lastName;
          },
          lastName(val) {
            this.fullName = this.firstName + "-" + val;
          },
        },
      });
    </script>
  </body>

二、总结computedwatch之间的区别

    1. computed能完成的功能,watch都可以完成。
    1. watch能完成的功能,computed不一定能完成,例如:watch可以进行异步操作。

三、两个重要的小原则

    1. 所被Vue管理的函数,最好写成普通函数,这样this的指向才是vm 或 组件实例对象。
    1. 所有不被vue所管理的函数 (定时器的回调函数、ajax的回调函数、Promise的回调函数等) ,最好写成箭头函数。这样this的指向才是vm或组件实例对象。
相关推荐
peachSoda723 分钟前
封装一个不同跳转方式的通用方法(跳转外部链接,跳转其他小程序,跳转半屏小程序)
前端·javascript·微信小程序·小程序
@PHARAOH36 分钟前
HOW - 浏览器兼容(含 Safari)
前端·safari
undefined在掘金390411 小时前
flutter 仿商场_首页
前端
少卿1 小时前
react-native图标替换
前端·react native
熊猫钓鱼>_>1 小时前
TypeScript前端架构与开发技巧深度解析:从工程化到性能优化的完整实践
前端·javascript·typescript
敲敲敲敲暴你脑袋1 小时前
Canvas绘制自定义流动路径
vue.js·typescript·canvas
JYeontu2 小时前
肉眼难以分辨 UI 是否对齐,写个插件来辅助
前端·javascript
fox_2 小时前
别再踩坑!JavaScript的this关键字,一次性讲透其“变脸”真相
前端·javascript
盛夏绽放2 小时前
uni-app Vue 项目的规范目录结构全解
前端·vue.js·uni-app
少卿2 小时前
React Native Vector Icons 安装指南
前端·react native