热搜:前端 nest neovim nvim

vue的设计思想

lxf2023-05-28 02:05:44

是一个桥梁

Vue是 view和model之间的一个桥梁, 通俗来讲就是:

  1. 数据发生变化, 中间做了什么, 视图就变了;
  2. 视图发生改变,中间做了什么, 数据就变了; 这个中间做的, 就指的是vue;

数据驱动应用

改数据界面就会发生变化

MVVM

M:model,数据
V:view,视图,Dom
V:视图
M:model数据

数据发生变化->视图变化

视图变化->影响数据

数据响应式

数据响应式是MVVM框架的一大特点,通过某种策略可以感知数据的变化。
Vue中利用了JS语言特性Object.defifineProperty(),通过定义对象属性getter/setter拦截对属性的访问。 具体实现是在Vue初始化时,会调用initState,它会初始化dataprops等,这里着重关注data初始化;

具体流程

初始化数据,包括props、methods、data、computed和watch;
initData核心代码是将data数据响应化;
initData里面的observe方法返回一个Observer实例;
Observe对象根据数据类型执行对应的响应化操作;
defifineEeactive定义对象属性的getter/setter,getter负责添加依赖,setter负责通知更新;
Dep负责管理一组Watcher,包括watcher实例的增删及通知更新;
Watch: 解析一个表达式并收集依赖,当数值变化时触发回调函数,常用于$watch API和指令中;
每个组件也会有对应的watcher,数值变化会触发其update函数导致重新渲染;

渲染

vue如何将模板转换为html?

vue工作原理

数据发生变化, 重新执行渲染函数,得到的结果就是虚拟dom,把虚拟dom变成真实dom的过程。
数据发生变化,通过模板引擎解析出的数据结果是虚拟dom, 再通过js引擎把虚拟dom,渲染到真实dom上;

什么是虚拟DOM

虚拟DOM(Virtual DOM)是对DOM的JS抽象表示,它们是JS对象,能够描述DOM结构和关系。应用 的各种状态变化会作用于虚拟DOM,最终映射到DOM上。

vue的核心作用

一个数据,将来可能通过服务器等动态变化,
数据变了 , 改界面, 界面改了, 改数据;
例:数据绑定到视图中,数据通过定时器或者服务器发生变化,
视图界面相应的就会变,反过来,用户在视图中输入一些内容,
或者通过绑定事件点击,视图变了, 就会导致相应的数据发生了变化;

本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!