Vue学习之旅2

135 阅读2分钟

「这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战」。

今天的主角仍是Vue,快来康康今天涉及到了vue哪些知识点吧~

1、computed与watch

computed计算属性: 内部有缓存机制不支持异步,当computed内有异步操作时无效,无法监听数据的变化,如果多次使用,只执行一次,相对数据进行加功但是不想损坏原数据时,可选择计算属性,只读不改,可以写为简写

fullName(){
    return ***;
 }

watch事件监听,不支持缓存,数据变,直接会触发相应的操作且支持异步操作

深度监听: vue中的watch默认不检测对象内部值的变化(一层),配置deep:true可以检测对象内部值改变(多层)

2、Vue监视数据的原理

  1. vue会监视data中所有层次的数据

  2. 监听对象中的数据, 通过setter实现数据 监视,且要在new之前传入要监视的数据

    • 若是对象中后追加的属性,vue不会做响应式处理;
    • 如需给后面添加的属性做响应式,可通过API:Vue.set(target, propertyName/index, value)或vm.$set(target, propertyName/index, value)
  3. 监听数组中的数据,通过包裹数组更新元素的方法实现

    • 调用原生对应的数组进行更新,只有使用修改原数组的方法才能被监听到,如push、pop、unshift、shift、sort、splice、reverse、Vue.set、vm.$set
    • 重新解析模板,进而更新页面

3、指令集合

Vue中的指令有:v-bindv-modelv-forv-onv-ifv-elsev-show

v-text:渲染文本内容,会替换节点中的内容,但是{{xxx}}不会

v-html: 支持结构解析,会替换内容,动态渲染html,容易导致ssr攻击

v-clovk没有值,特殊属性,Vue实例接管容器后,会删除v-clock属性,配合css可以解决网速慢时页面展示出{{xxx}}的问题

v-once没有值,初次动态渲染后,被视为静态内容了

v-pre跳过其所在的编译过程,可以利用它跳过没有使用指令语法,没有使用插值语法的节点,会加快编程。

好啦,今天的内容就这些啦,还有很多不足的地方,很多知识点还不知道,继续加油哦!