✅作者简介:大家好我是honker707,大家可以叫我honker,新星计划第三季python赛道Top1🏆 📃个人主页:honker707的csdn博客 🔥系列专栏:带你玩转Vue 💬推荐一款模拟面试、刷题神器👉点击跳转进入网站
1.它是一个渐进式JavaScript框架 2.核心库加插件 3.动态创建用户界面 4.使用MVVM模式 5.代码简洁 体积小 能够提高运行效率 6.适合PC端和移动端的开发 7.可以轻松引入vue插件以及其他第三方库进行开发
v-text v-text 主要用来更新 textContent,可以等同于 JS 的 text 属性。 v-html 等同于 JS 的 innerHtml 属性 v-cloak 用来保持在元素上直到关联实例结束时进行编译 解决闪烁问题 v-once v-once 关联的实例,只会渲染一次。之后的重新渲染,实例极其所有的子节点将被视为静态内容跳过,这可以用于优化更新性能 == v-if== v-if 可以实现条件渲染,Vue 会根据表达式的值的真假条件来渲染元素 v-else v-else 是搭配 v-if 使用的,它必须紧跟在 v-if 或者 v-else-if 后面,否则不起作用 v-else-if v-else-if 充当 v-if 的 else-if 块, 可以链式的使用多次。可以更加方便的实现 switch 语句。 v-show 也是用于根据条件展示元素。和 v-if 不同的是,如果 v-if 的值是 false,则这个元素被销毁,不在 dom 中。但是 v-show 的元素会始终被渲染并保存在 dom 中,它只是简单的切换 css 的 dispaly 属性 v-for 用 v-for 指令根据遍历数组来进行渲染 v-bind v-bind 用来动态的绑定一个或者多个特性。没有参数时,可以绑定到一个包含键值对的对象。常用于动态绑定 class 和 style。以及 href 等。简写为一个冒号【 :】 v-model 用于在表单上创建双向数据绑定 v-on v-on 主要用来监听 dom 事件,以便执行一些代码块。表达式可以是一个方法名。 简写为:【 @ 】
MVVM模式 MVVM模式就是Model–View–ViewModel模式。它实现了View的变动,自动反映在 ViewModel,反之亦然。就是在单向绑定的基础上给可输入元素(input、textare等)添加了change(input)事件,(change事件触发,View的状态就被更新了)来动态修改model。 双向绑定原理 vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的。 实现数据的双向绑定,首先要对数据进行劫持监听,所以我们需要设置一个监听器Observer,用来监听所有属性。如果属性发上变化了,就需要告诉订阅者Watcher看是否需要更新。因为订阅者是有很多个,所以我们需要有一个消息订阅器Dep来专门收集这些订阅者,然后在监听器Observer和订阅者Watcher之间进行统一管理的。接着,我们还需要有一个指令解析器Compile,对每个节点元素进行扫描和解析,将相关指令(如v-model,v-on)对应初始化成一个订阅者Watcher,并替换模板数据或者绑定相应的函数,此时当订阅者Watcher接收到相应属性的变化,就会执行对应的更新函数,从而更新视图。 总结成三个步骤 1实现一个监听器Observer,用来劫持并监听所有属性,如果有变动的,就通知订阅者。 2实现一个订阅者Watcher,每一个Watcher都绑定一个更新函数,watcher可以收到属性的变化通知并执行相应的函数,从而更新视图。 3实现一个解析器Compile,可以扫描和解析每个节点的相关指令(v-model,v-on等指令),如果节点存在v-model,v-on等指令,则解析器Compile初始化这类节点的模板数据,使之可以显示在视图上,然后初始化相应的订阅者(Watcher)。