请问放在data()里的变量,会时刻监听变化么

请问放在data()里的变量,会时刻监听变化么

开始的时候swiperOption是放在data()里定义赋值的,后来老师说放在这里会添加getter setter,时刻监听变化,是种浪费。那请问一下,如果时刻监听变化的话,当this.data变化时,this.loop会随之重新计算,从而也变化么?似乎不会,不然也不会放在watch里了,那当传过来的data变化时,data()里的this.data会跟着一起变么?

非常感谢!


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,直接把写在组件的<template>里,在data中改变的话,页面可以直接看到的。不是说所有的计算或者赋值的话就要放到watch中,这个要需要具体的情况具体分析,比如说我们课程中的这个,传递的text这个值改变的时候,把他赋值给了新的值,这里是用了监听的。

但是比如如下,这个,把b的值赋值给a,当直接在代码中改变a的值的时候,页面中得到的这个b的值也会发生改变,是不需要监听的。

http://img1.sycdn.imooc.com//climg/5c088f380001147f04410602.jpg

希望能帮助到你,祝学习愉快!

  • hpbrave 提问者 #1
    好的,谢谢,这种情况我记住了,真希望老师能再系统地总结下什么情况需要监听,什么情况不需要啊
    2018-12-06 16:50:00
好帮手慕糖 2018-12-05 18:56:42

同学你好,data()中的数据,会实时变化,就是你改变data中的数据,页面也会发生变化。而watch是监听到变化之后,会触发这个watch函数,进行的一系列操作。比如,在这个数据改变的时候,想做一些操作,那么就可以在watch中监听这个数据。

希望能帮助到你,祝学习愉快!

  • 提问者 hpbrave #1
    非常感谢,那是不是如果data()里的数据是直接写在组件的<template>里,就能直接在网页上看到变化,但是如果是赋值或者计算这种的话,就必须放在watch里了
    2018-12-05 20:58:56
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
热门框架Vue开发WebApp 18版
  • 参与学习           人
  • 提交作业       209    份
  • 解答问题       3299    个

本路径是通过ES6基础知识、运用Zepto、Swiper、fullPag等移动端常用工具包、以及当下流行框架Vue,结合多个实战案例,还原真实开发场景,最终实现手机端购物商城网页开发。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师