Vue的介绍&原理

一.了不起的vue

  1.官方介绍

    Vue是一套用于构建用户界面的渐进式框架。与其他大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用提供驱动

  2.渐进式

    框架做分层设计,每层都可选,不同层可以灵活接入其他方案。而当你都想用官方的是实现时,会发现早已准备好,各层之间包括配套工具都能比接入其他方案更便捷地协同工作。

  3.MV*模式(MVC/MVP/MVVM)

    MVC:用户对view操作以后,View捕获到这个操作,会把处理的权力移交给Controller(Pass calls);Controller会对来自View的数据进行预处理,决定调用那个Model的接口;然后由Model执行相关的业务逻辑(数据请求);当Model变更了以后,会通过观察者模式通知View;View通过观察者模式收到Model变更的信息后,会向Model请求最新的数据,然后重新更新界面;这种模式把业务逻辑和展示逻辑分离,模块化程度高。但由于View时强依赖特定的Model的,所以View无法组件化,无法复用。

    MVP:model view presenter 和MVC模式一样,用户对View的操作都会从View移交给Presenter。Presenter会执行相应的应用执行逻辑,并且对Model进行相应的操作;而这个时候Model执行完业务逻辑以后,也是通过观察者模式把自己变更的消息传递出去,但是是传给Presenter而不是View。Presenter获取到Model变更的消息以后,通过View提供的接口更新界面。此模式中,View不依赖Model,View可以进行组件化。但Model - View的手动逻辑麻烦,维护困难。

    MVVM:model view viewmodel MVVM的调用关系和MVP一样。但是,在ViewModel当中会有一个叫Binder,或者是Data-binding engine的东西。你只需要在View的模板语法当中,指令式的声明View上的显示的内容是和Model的那一块数据绑定的。当ViewModel对Model进行更新的时候,Binder会自动把数据更新到View上去,当用户对View进行操作(例如表单输入),Binder也会自动把数据更新到Model上去。这种方式称为:Two-way data-binding ,双向数据绑定。可以简单而不恰当的理解为一个模板引擎,但是会根据数据变更实时渲染。此模式,解决了MVP大量的手动View和Model同步的问题,提供双向绑定机制,提高代码的可维护性。对于大型的图形应用程序,视图状态较多,ViewModel的构建和维护的成本比较高。

二.Vue心跳体验

  直接下载并用<script>标签引入,Vue会被注册为一个全局变量。

  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

  命令行工具vue cli

  Vue提供了一个官方的CLI,为单页面应用(SPA)快速搭建繁杂的脚手架。

  npm install [email protected]/cli

三.数据绑定原理

 当你把一个普通的JavaScript对象传入Vue实例作为data选项,Vue将遍历此对象所有的属性,并使用Object.defineProperty把这些属性全部转为getter/setter。Object.defineProperty是ES5中一个无法shim的特性,这也就是Vue支持IE8以及更低浏览器版本的原因。每个组件实例都对应一个watcher实例,它会在组件渲染的过程中把”接触“过的数据属性记录为依赖。之后当依赖项的setter触发时,会通知watcher,从而使它关联的组件重新渲染。

原文地址:https://www.cnblogs.com/qiaowanze/p/12316248.html

时间: 2024-10-31 03:00:57

Vue的介绍&原理的相关文章

[Vue源码]一起来学Vue双向绑定原理-数据劫持和发布订阅

有一段时间没有更新技术博文了,因为这段时间埋下头来看Vue源码了.本文我们一起通过学习双向绑定原理来分析Vue源码.预计接下来会围绕Vue源码来整理一些文章,如下. 一起来学Vue双向绑定原理-数据劫持和发布订阅 一起来学Vue模板编译原理(一)-Template生成AST 一起来学Vue模板编译原理(二)-AST生成Render字符串 一起来学Vue虚拟DOM解析-Virtual Dom实现和Dom-diff算法 这些文章统一放在我的git仓库:https://github.com/yzsun

vue 之 介绍及简单使用

浏览目录 vue的介绍 vue的使用 vue的介绍 简介 vue官网说:Vue.js(读音 /vju?/,类似于 view) 是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计. 关于渐进式和自底向上增量开发我们来看一下知乎的回答: vue.js的优点 1.易用 已经会了 HTML.CSS.JavaScript?即刻阅读指南开始构建应用! 2.灵活 不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩. 3.高效 20kB min+gzip 运行大

自定义vue全局组件use使用(解释vue.use()的原理)

我们在前面学习到是用别人的组件:Vue.use(VueRouter).Vue.use(Mint)等等.其实使用的这些都是全剧组件,这里我们就来讲解一下怎么样定义一个全局组件,并解释vue.use()的原理而我们再用Axios做交互,则不能使用Vue.use(Axios),因为Axios没有install 自定义一个全局Loading组件,并使用:总结目录:|-components |-loading |-index.js 导出组件,并且install |-loading.vue 定义Loadin

vue2+vuex+vue-router 快速入门(三) vue 实例介绍

vue 实例介绍 vue 实例分两种,一种为组件实例,另外一种为根实例.组件实例负责创建个性化组件.而根实例负责把组件渲染到指定的真实的 DOM 结构中.并且 vue 为我们提供了一种特殊的文件格式 .vue 来创建 组件实例..vue 文件格式如下: *.vue <template> ... </template> <script> export default { data(){ return {} } } </script> <style lan

深度解析 Vue 响应式原理

深度解析 Vue 响应式原理 该文章内容节选自团队的开源项目 InterviewMap.项目目前内容包含了 JS.网络.浏览器相关.性能优化.安全.框架.Git.数据结构.算法等内容,无论是基础还是进阶,亦或是源码解读,你都能在本图谱中得到满意的答案,希望这个面试图谱能够帮助到大家更好的准备面试. Vue 初始化 在 Vue 的初始化中,会先对 props 和 data 进行初始化 Vue.prototype._init = function(options?: Object) { // ...

深入Vue响应式原理

深入Vue.js响应式原理 一.创建一个Vue应用 new Vue({ data() { return { name: 'yjh', }; }, router, store, render: h => h(App), }).$mount('#app'); 二.实例化一个Vue应用到底发生了什么? this._init() callHook(vm, 'beforeCreate') observe(vm._data) vm._data = vm.$options.data() proxy(vm, _

Vue的介绍及安装和导入

08.27自我总结 Vue的介绍及安装和导入 本质就是封装一些js 一Vue的介绍 进式 JavaScript 框架 通过对框架的了解与运用程度,来决定其在整个项目中的应用范围,最终可以独立以框架方式完成整个web前端项目 三大主流框架之一:Angular React Vue 先进的前端设计模式:MVVM 这个我们可以和之前的mav设置模式结合其实他相当于mvcmc他将其中的逻辑控制又进行划分划分成视图的逻辑,数据的逻辑. 可以完全脱离服务器端,以前端代码复用的方式渲染整个页面:组件化开发 数据

一.关于Vue的介绍

目录 一.关于Vue的介绍 1.什么是Vue 2.Vue的优点 3.MVVM的设计模式 一.关于Vue的介绍 1.什么是Vue ? 渐进式JavaScript框架,js是页面脚本语言,用来控制或是辅助页面搭建,js功能的集合体 vue可以控制一个页面中的一个标签 vue可以控制一整个页面 vue可以控制整个项目 js控制页面-需要在页面script引入js =>vue项目只有一个页面 =>组件化开发 2.Vue的优点 三大前台框架:Angular React Vue vue:综合前两个框架的优

vue响应式原理解析

# Vue响应式原理解析 首先定义了四个核心的js文件 - 1. observer.js 观察者函数,用来设置data的get和set函数,并且把watcher存放在dep中 - 2. watcher.js 监听者函数,用来设置dep.target开启依赖收集的条件,和触发视图的更新函数 - 3. compile.js 编译者函数,用来编译模版和实例化 watcher 函数 - 4. index.js 入口文件 注意dep函数就是一个壳子,用来存放watcher和触发watcher更新的 首先从