vue.js实现初了解(一)
1. vue 2.0是用Flow做静态类型检查, 3.0对TypeScript的支持更好了;
2. vue.js是基于Rollup(更轻量,适合js库的构建)构建的,它的构建相关配置都在scripts目录下;
3. Runtime Only 版本(template模板编译为render函数) 和 Runtime+Compiler 版本;
4. vue实际是一个函数,利用函数来实现类,类上挂了很多的原型方法($set,$route等是原型方法),全局方法Vue上挂载一些静态方法,全局use,mixin,extend,assgtRegisters(components等)这些方法是静态方法/属性。
数据驱动 数据变化来驱动视图变化
5. new Vue发生了什么?
Vue方法源码片段
function Vue(options){ // 传入options配置项
if(process.env.NODE_ENV!=='production'&&!(this instanceof Vue))
{
warn('vue is a constructor and shou be called with `new` keyword')
}
this._init(options) // 调用初始化方法
}
new关键字在js中代表实例化一个对象,而Vue实际上是一个类,类在js中是用Function来实现的,初始化会调用this._init方法。
Vue初始化主要干了几件事,合并配置,初始化生命周期,初始化事件中心,初始化渲染,初始化data、props、computed、whatcher等等,在初始化的最后,如果有el属性,则调用vm.$mount方法挂载vm,挂载的目标就是把模板渲染成最终的DOM。
6. 手写render函数
import Vue from 'vue'
var app = new Vue({
el:'#app',
render(createElement){
return createElement('div', {
attrs: {
id:'#app'
}
}, this.message)
},
data(){
return {
message: 'Hello World~'
}
}
})
7. Virturl DOM
是用一个原生的js对象去描述一个DOM节点,所以它比创建一个dom的代价小很多。在vue.js中,virtual DOM是用vNode这么一个Class去描述,它是定义在src/core/vdom/vnode.js中。
8. createElement 利用 createElement 创建vNode
vue.js实现初了解(一)的更多相关文章
- Vue.js之初印象
一.背景 MVVM模式,很多人在说在用,好吧,我落后了,我目前的项目木有用到MVVM模式的框架,vuejs,reactjs,angularjs,nonono,自己去捣鼓过ng,项目木有用到.实在不敢称 ...
- vue.js——初体验
看到最近很火的vue.js,于是开启了自己人生中首篇翻译之路,才意识到这个纯英文版的的确没有中文的通俗易懂~~~~~~不过, 还是硬着头皮把这篇英文版的博客给翻译完了,希望可以帮助自己的同时也方便别人 ...
- MVC + Vue.js 初体验(实现表单操作)
Vuejs http://cn.vuejs.org/ Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的 ...
- vue.js 初体验— Chrome 插件开发实录
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:陈纬杰 背景 对于经常和动画开发打交道的开发者对于Animate.css这个动画库不会陌生,它把一些常见 ...
- 初入vue.js(1)
本文章属于个人在学习vue的随笔,留作与大家分享,技术交流之用,如果有错误,请大家多多指正.谢谢 首先说一下vue的使用方式: vue的使用方式一共有两种,第一种是直接在官网上下载vue.js的文件, ...
- Vue.js 入门指南之“前传”(含sublime text 3 配置)
题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指南”的“前传”吧.此文献给跟我一样“白痴 ...
- Vue.js:轻量高效的前端组件化方案
转发一篇尤老师对vue.js的介绍,了解vue.js的来龙去脉.不过现在已经是2.0了,也有添加一些新的东西,当然有些东西也改了. Vue.js:轻量高效的前端组件化方案 Vue.js 是我在2014 ...
- Vue.js起手式+Vue小作品实战
本文是小羊根据Vue.js文档进行解读的第一篇文章,主要内容涵盖Vue.js的基础部分的知识的,文章顺序基本按照官方文档的顺序,每个知识点现附上代码,然后根据代码给予个人的一些理解,最后还放上在线编辑 ...
- Vue.js双向绑定的实现原理和模板引擎实现原理(##########################################)
Vue.js双向绑定的实现原理 解析 神奇的 Object.defineProperty 这个方法了不起啊..vue.js和avalon.js 都是通过它实现双向绑定的..而且Object.obser ...
随机推荐
- hadoop job解决大数据量关联时数据倾斜的一种办法
转自:http://www.cnblogs.com/xuxm2007/archive/2011/09/01/2161929.html http://www.geminikwok.com/2011/04 ...
- php 连接数据库
连接数据库 <?php $con = mysql_connect("localhost","root","root"); if (!$ ...
- e675. 翻转缓冲图像
// To create a buffered image, see e666 创建缓冲图像 // Flip the image vertically AffineTransform tx = Aff ...
- x264参数
参数及结构 typedef struct{ int i_csp; //色彩空间参数 ,X264只支持I420 int i_stride[4]; //对应于各个色 ...
- 利用KEGG的API获取基因对应的pathway 信息
KEGG 官网提供了API, 可以方便的访问KEGG 数据库中的内容,链接如下: http://www.kegg.jp/kegg/rest/keggapi.html 利用API可以得到某一个基因参与的 ...
- Winform appconfig修改后的更新问题
- mysql压缩包的安装、配置、配成windows服务、远程连接及常规问题
1.下载windows安装包 下载地址:mysql-5.7.18 2.配置my.ini [client] port = 3306 # 设置mysql客户端连接服务端时默认使用的端口 [mysql] d ...
- 批量快速的导入导出Oracle的数据(spool缓冲池、java实现)
1. Java代码实现思路 BufferedWriter writefile = new BufferedWriter(new FileWriter(file)); writefile.write( ...
- Loadrunner进行md5加密方法
本文主要介绍使用Loadrunner进行字符串md5加密的方法. 使用Loadrunner进行md5比较简单,首先是加载md5.h头文件,后使用头文件中的加密函数即可. 1. md5.h头文件内容如下 ...
- GOlang eclipse install
http://golang.org/dl/ 下载golang https://codeload.github.com/GoClipse/goclipse/tar.gz/v0.8.1 解压 安装ecli ...