vue.js源码学习分享(三)】的更多相关文章

今天看了vue.js源码  发现非常不错,想一边看一遍写博客和大家分享 /** * Convert a value to a string that is actually rendered. *转换一个值为字符串 */ function _toString (val) { return val == null? '': typeof val === 'object'? JSON.stringify(val, null, 2): String(val)//如果该值是null则返回空字符串,如果该…
/** * Mix properties into target object.//把多个属性插入目标的对象 */ function extend (to, _from) { for (var key in _from) { to[key] = _from[key]; } return to } /** * Quick object check - this is primarily used to tell * Objects from primitive values when we kno…
/* */ var arrayKeys = Object.getOwnPropertyNames(arrayMethods);//获取arrayMethods的属性名称 /** * By default, when a reactive property is set, the new value is//默认情况下,当一个响应的属性被设置,新的值也转换成响应的.然而当经过向下支撑时,我们不想促使转换,因为这值也许是一个嵌套值在一个冻结的数据结构,转换它时将会失去最优化 * also conve…
var _Set; /* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) { // use native Set when available.//当本地set有效时使用set _Set = Set; } else { // a non-standard Set polyfill that only works with primitive keys.//一个不标准的set只会和一些简单的键工作…
/* */ /* globals MutationObserver *///全局变化观察者 // can we use __proto__?//我们能用__proto__吗? var hasProto = '__proto__' in {}; // Browser environment sniffing//浏览器环境嗅探 var inBrowser = typeof window !== 'undefined';//是不是在浏览器中 var UA = inBrowser && windo…
/* */ var uid$1 = 0; /** * A dep is an observable that can have multiple * directives subscribing() to it.//一个dep 是一个可观察到的,dep能有多样的订阅指示 */ var Dep = function Dep () { this.id = uid$1++; this.subs = []; }; Dep.prototype.addSub = function addSub (sub)…
//配置项var config = { /** * Option merge strategies (used in core/util/options)//选项合并策略 */ optionMergeStrategies: Object.create(null), /** * Whether to suppress warnings.//是否抑制警告 */ silent: false, /** * Show production mode//生产模式 tip message on boot?//…
/** * Generate a static keys string from compiler modules.//从编译器生成一个静态键字符串模块. */ function genStaticKeys (modules) { return modules.reduce(function (keys, m) { return keys.concat(m.staticKeys || []) }, []).join(',') } /** * Check if two values are loo…
/** * Check if value is primitive//检查该值是否是个原始值 */ function isPrimitive (value) { return typeof value === 'string' || typeof value === 'number' } /** * Create a cached version of a pure function.//创建一个纯粹的函数的缓存版本 */ function cached (fn) { var cache = O…
Vue.js 源码是基于 Rollup 构建的,它的构建相关配置都在 scripts 目录下. 构建脚本 通常一个基于 NPM 托管的项目都会有一个 package.json 文件,它是对项目的描述文件,它的内容实际上是一个标准的 JSON 对象. 我们通常会配置 script 字段作为 NPM 的执行脚本,Vue.js 源码构建的脚本如下: { "script": { "build": "node scripts/build.js", &quo…