vue学习(15)watch和computed

简介: vue学习(15)watch和computed
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>姓名案例_watch实现</title>
</head>

<body>
    <div id="root">
        姓:<input type="text" v-model="firstName" />
        <br /><br />
        名:<input type="text" v-model="lastName" />
        <br /><br />
        姓名:<span>{
   {
   fullName}}</span>
    </div>
    <script src="../js/vue.js"></script>
    <script type="text/javascript">
        Vue.config.procuctionTip = false;
        const vm = new Vue({
   
            el: '#root',
            data: {
   
                firstName: '张',
                lastName: '三',
                fullName: '张-三'
            },
            computed: {
   
                // fullName(){
   
                //     return this.firstName + '-' + this.lastName;
                // }
            },
            watch: {
   
                firstName(val) {
   
                    setTimeout(() => {
   
                        this.fullName = val + '-' + this.lastName;
                    }, 1000);
                },
                lastName(val) {
   
                    this.fullName = this.firstName + '-' + val;
                }
            }
        })
    </script>
</body>

</html>

知识点
1:侦听属性watch可以开启异步任务,但计算属性就不能开启异步去维护数据。
2:定时器的回调是js引擎帮忙调用的,如果写成普通函数形式,里面的this,就是指window。
3:watch和computed之间的区别:
(1):computed可以完成的功能,watch也能实现。
(2):watch能完成的功能,computed不一定能实现,比如watch可以进行异步操作。
4:两个重要的小原则:
(1):所被vue管理的函数最好写成普通函数。
(2):所有不被vue管理的函数(定时器的回调函数,ajax的回调等),最好写成箭头函数。这样this的指向才是vm或组件实例。

目录
相关文章
|
3天前
|
JavaScript
vue消息订阅与发布
vue消息订阅与发布
|
3天前
|
JavaScript
vue尚品汇商城项目-day07【vue插件-50.(了解)表单校验插件】
vue尚品汇商城项目-day07【vue插件-50.(了解)表单校验插件】
12 4
|
3天前
|
JavaScript
vue尚品汇商城项目-day07【51.路由懒加载】
vue尚品汇商城项目-day07【51.路由懒加载】
13 4
|
3天前
|
JavaScript
vue尚品汇商城项目-day07【vue插件-54.(了解)生成二维码插件】
vue尚品汇商城项目-day07【vue插件-54.(了解)生成二维码插件】
9 2
|
JavaScript
Vue -computed传参数
vue 中computed想传递参数怎么办? 闭包在这里起到的重要的作用 &lt;input v-model="newItem(key,val)" type="text"/&gt; computed:{ newIt...
3026 0
|
5天前
|
JavaScript
vue组件中的插槽
本文介绍了Vue中组件的插槽使用,包括单个插槽和多个具名插槽的定义及在父组件中的使用方法,展示了如何通过插槽将父组件的内容插入到子组件的指定位置。
|
4天前
|
JavaScript 前端开发 IDE
Vue学习笔记5:用Vue的事件监听 实现数据更新的实时视图显示
Vue学习笔记5:用Vue的事件监听 实现数据更新的实时视图显示
|
4天前
|
JavaScript 前端开发 API
Vue学习笔记4:用reactive() 实现数据更新的实时视图显示
Vue学习笔记4:用reactive() 实现数据更新的实时视图显示
|
4天前
|
JavaScript 前端开发
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
|
4天前
|
JavaScript 前端开发 API
Vue学习笔记7:使用v-for指令渲染列表
Vue学习笔记7:使用v-for指令渲染列表
下一篇
无影云桌面