下载此文档

理解vue实现原理,实现一个简单的vue框架.doc


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
理解vue实现原理,实现一个简单的Vue框架其实对JS我研究不是太深,用过很多次,但只是实现功能就算了。最近JS实在是太火,从前端到后端,应用越来越广泛,各种框架层出不穷,忍不住也想赶一下潮流。Vue是近年出的一个前端构建数据驱动的web界面的库,主要的特色是响应式的数据绑定,区别于以往的命令式用法。也就是在vara=1;的过程中,拦截’=’的过程,从而实现更新数据,web视图也自动同步更新的功能。而不需要显式的使用数据更新视图(命令式)。这种用法我最早是在VCMFC中见过的,控件绑定变量,修改变量的值,输入框也同步改变。Vue的官方文档,网上的解析文章都很详细,不过出于学****的目的,还是了解原理后,自己实现一下记忆深刻,同时也可以学****下Js的一些知识。搞这行的,一定要多WTFC(WriteTheFuckingCode)。一、思考设计其实这里的思考是在看过几篇文章、看过一些源码后补上的,所以有的地方会有上帝视角的意思。但是这个过程是必须的,以后碰到问题就会有思考的方向。先看看我们想要实现什么功能,以及现在所具有的条件:效果图如下:这里写图片描述使用Vue框架代码如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>MVVM</title></head><body><scriptsrc="src/"></script><divid="msg">{{}}这是普通文本{{+1+message}}这是普通文本<p>{{message}}</p><p><inputtype="text"v-model="message"/></p><p>{{message}}</p><p><buttontype="button"v-on:click="clickBtn(message)">clickme</button></p></div><script>varvm=newVue({el:"#msg",data:{b:{c:1},message:"helloworld"methods:{clickBtn:function(message){="clicked";}}});</script></body></html>然后我们还知道一个条件,Vue的官方文档所说的:把一个普通对象传给Vue实例作为它的data选项,,。这是ES5特性,不能打补丁实现,。用这个特性实现这样的功能,我们需要做什么呢?首先,,将要观察的对象,转化成getter/setter,以便拦截对象赋值与取值操作,称之为Observer;需要将DOM解析,提取其中的指令与占位符,并赋与不同的操作,piler;pile的解析结果,与Observer所观察的对象连接起来,建立关系,在Observer观察到对象数据变化时,接收通知,同时更新DOM,称之为Watcher;最后,需要一个公共入口对象,接收配置,协调上述三者,称为Vue;二、,结果只是转换为getter和setter就碰到了很多问题。原来对JS真得是只知道点皮毛啊……:/**Observer是将输入的PlainObject进行处理,,从而在赋值与取值时进行拦截这是Vue响应式框架的基础*/functionisObject(obj){returnobj!=null&&typeof(obj)=='object';}functionisPlainObject(obj){(obj)=='[objectObject]';}functionobserver(data){if(!isObject(data)||!isPlainObject(data)){return;returnnewObserver(data);}varObserver=function(data){=data;(data);};=function(data){for(varkeyindata){varvalue=data[key];(data,key,{enumerable:t

理解vue实现原理,实现一个简单的vue框架 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小27 KB
  • 时间2019-12-31