vue日常学习2(模板template、计算属性computed、监听属性watch)

一.模板template

  1. vue的构造器的选项中:
    el:指定挂载的节点
    data:声明Vue实例中的属性
    methods:定义事件函数/其他的方法
    template也是选项之一,定义视图模板
    • template最终会直接替换原节点,使用template模板中必须要有一个根节点
  2. template使用的3种方式
    1.直接定义在选项中
    2.定义在template
    2.定义在script

二.计算属性 computed

  1. 当依赖的值发生变化时,会触发计算属性重新计算
  2. 是否刷新视图问题
    • 如果计算属性中依赖的值没有发生变化,则计算属性不会在视图更新时执行,因为计算属性会缓存计算过后的值
    • methods定义的方法如果使用了{{fn()}}调用,则视图更新时,不管与该方法有没有关系,都会重新执行一遍
    • 计算属性只有看自己已懒得值得有没有发生变化,如果没变化,则视图即使更新了,计算属性也不会重新执行
  3. 何时使用计算属性
    当属性需要经过计算,从一个已有的数据得到一个新的数据时,就可以使用computed,这样可以节省性能
  4. 是属性,调用时不用加()

三.监听属性watch

  1. 作用:监听数据的状态变化
  2. 属性
    • deep属性表示是否深度监听,默认值为false(不开启),当对象等引用类型数据发生变化时,是不会监听到的
      =>普通的watch方法无法监听到对象内部属性的改变
      => 为了发现对象内部值的变化,可以在选项参数中指定 deep: true。注意监听数组的变更不需要这么做。
    • immediate属性表示是否立即监听,默认值false;如果为true,则在加载页面时就已经开始监听
    • 无法监听通过下标改变的数组
    • 无法监听通过 . 方式添加对象属性
  3. 何时使用:当数据发生变化后需要处理某些逻辑时
  4. 对象的监听
  'obj.a':{
      handle(){},//处理函数,不能使用箭头函数
      deep:true,//深度监听
      immediate:true,//立即监听
    }
  1. watch自带一个新值和旧值,新值就是变化后的值,旧值就是变化前的值
    就是watch:{
    num(新值,旧值){}
    }
  2. computed和watch的区别
- computed是根据依赖的值的变化计算得出新的值,新的值会被挂载到Vue实例上;watch是监听已经存在的属性/状态,watch还可以监听computed的变化
- computed计算得到的值具有缓冲性,当依赖发生变化时,才会重新计算;watch是只有当监听的属性发生变化才会执行
- 从使用场景来说:
  computed适用于一个数据受多个数据影响的场景
  watch适用于一个数据影响多个数据的场景
  computed用于同步数据的处理
  watch可以处理异步数据

四.其他

  1. 反引号``的作用
    模板字符串(Template String)是增强版的字符串,用反引号(`)标识,它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量
    https://blog.csdn.net/blog_szhao/article/details/51792868
  2. template什么情况下需要使用
    单独使用模板将会替换挂载的元素。所以一般与插槽一起使用,
  3. v-model 和 :value的区别
    v-model的适用范围更广,更好的使用监听watch的的选项
    :value只能用于有value值的标签
  4. vue里的方法要调用才能运行
  5. forEach循环
//forEach方法中的function回调有三个参数:
//第一个参数是遍历的数组内容,
//第二个参数是对应的数组索引,
//第三个参数是数组本身
 arr.forEach(function(value,index,array){ 
    //code something    
  });
  1. await与async
    AsyncFunction 构造函数用来创建新的异步函数对象,JavaScript 中每个异步函数都是 AsyncFunction 的对象。
    https://www.jianshu.com/p/b4fd76c61dc9
    http://www.ruanyifeng.com/blog/2015/05/async.html
  2. 数组的增加
    arr.pop() 用于删除并返回数组的最后一个元素。 后删
    arr.unshift() 向数组的开头添加一个或更多元素,并返回新的长度。 头增
    arr.shift() 用于把数组的第一个元素从其中删除,并返回第一个元素的值。 头删
    arr.push() 向数组的末尾添加一个或多个元素,并返回新的长度。 后增
  3. 定时器
    setTimeout((),时间) 在指定的毫秒数后调用函数或计算表达式。
    setInterval((),时间) 每隔固定时间被调用一次
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值