Vue.js的基础学习】的更多相关文章

Vue.js的基础网上很多,这里不记录 开始正式页面的开发 1.页面加载时请求数据 methods: { post() { //发送post请求 this.$http.post('../../ashx/UploadReceipt.ashx', { "Type": "GetMyConsumptionScore", "MemberID": MemberID }, { emulateJSON: true }).then(function (res) {…
声明 这篇博文是我的Vue学习记录,其中参杂了不少我个人的理解,由于我并没有继续学习Vue的源码,所以不能保证这些理解都是正确的.如果这篇博文有幸被你读到,请带着批判的心情去审视它. 如果你发现了其中的问题,衷心希望你能指出来. 这篇博文记录顺序大致是按照Vue官方教程来整理的,同时也根据我的理解做了一些顺序上的小调整.如果你想了解完整的信息,请移步Vue.js. 一 简介 1,什么是vue Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.所谓渐进式即是指我…
Node.js基础学习 Node.js回调函数 Node.js异步编程的直接体现就是回调,异步编程依托回调来实现,但不是异步.回调函数在完成任务后就会被调用,Node有很多的回调函数,其所有的API都支持回调. Eg:可以一边读取文件,一边执行其它的命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回,这样在执行代码时就没有阻塞或等待文件I/O操作.大大的提高了node.js的性能,处理大量的并发请求.(简单的理解就是同时做两件或者多件事情,减少其等待的时间) 阻塞代码: 1:创建文本和…
Node.js基础学习 简介 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好 安装 à安装node.js 在官网安装自己win版本的node.js的版本,下载,安装完毕后在运行中输入node -v若是出现版本号就证明安装成功. à安装npm(模…
官网:https://cn.vuejs.org/v2/guide/index.html Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统. 视频教程:https://scrimba.com/g/glearnvue 介绍 实例 模版语法template computed, watch v-if, v-show v-for, 一个组件的v-for. 查看我的codepen案例: https://codepen.io/chentianwei411/pen/Eeme…
最近饶有兴致的又把最新版 Vue.js 的源码学习了一下,觉得真心不错,个人觉得 Vue.js 的代码非常之优雅而且精辟,作者本身可能无 (bu) 意 (xie) 提及这些.那么,就让我来吧:) 程序结构梳理 Vue.js 是一个非常典型的 MVVM 的程序结构,整个程序从最上层大概分为 全局设计:包括全局接口.默认选项等 vm 实例设计:包括接口设计 (vm 原型).实例初始化过程设计 (vm 构造函数) 这里面大部分内容可以直接跟 Vue.js 的官方 API 参考文档对应起来,但文档里面没…
Installation 可以使用的方式: script标签方式加载vue.js cdn https://unpkg.com/vue@2.0.5/dist/vue.js npm Introduction 通过指定的语法渲染js变量 DOM元素与变量绑定,同步更新,无需手动操纵DOM 通过vue标签属性,完成绑定data,绑定事件,条件语句以及循环等特性 创建自定义可复用的组件,可直接在html标签中使用 The Vue Instance Vue构造方法创建实例,并且可以扩展构造方法创建可重用的组…
  Vue.js兼容性 Vue.js.js 不支持 IE8 及其以下版本,因为 Vue.js.js 使用了 IE8 不能模拟的 ECMAScript 5 特性. Vue.js.js 支持所有兼容 ECMAScript 5 的浏览器. Vue.js安装 安装方式有两种: 1.直接下载用script标签引入(推荐引入开发版本,压缩版本会失去错误提示和警告) 2.使用cdn方法引入 3.npm安装 npm安装的前提需要安装了nodejs,这里推荐nvm安装nodejs 附上一小段nvm使用的命令: $…
事件处理 表单输入绑定 事件处理 监听v-on 监听 DOM 事件,并在触发时运行一些 JavaScript 代码. 可以在v-on:click=''加内联语句. 有时也需要在内联语句处理器中访问原始的 DOM 事件.可以用特殊变量 $event 把它传入方法: 事件修饰符 在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation() 是非常常见的需求. 但更好的方式是:方法只有纯粹的数据逻辑,而不是去处理 DOM 事件细节. Vue.j…
主体 实例方法归类:   先看个作者推荐, 清晰易懂的  23232 简易编译器   重点: 最简单的订阅者模式 // Observer class Observer { constructor (data) { this.walk(data) } walk (data) { // 遍历 let keys = Object.keys(data) for(let i = 0; i < keys.length; i++){ defineReactive(data, keys[i], data[key…
今天看了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则返回空字符串,如果该…
指令带有前缀 v-,表示是由 Vue 提供的专用属性. v-on 指令 来增加事件监听器,触发事件后会调用 Vue 实例中 methods 下定义的方法 v-model 指令,使得表单输入和应用程序状态之间的双向绑定变得轻而易举 一些其它的钩子,在实例生命周期的不同阶段调用,如mounted.updated 和 destroyed.钩子的 this 指向调用它的 Vue 实例.一些用户可能会问 Vue.js 是否有“控制器(controller)”的概念?答案是,没有.组件的自定义逻辑可以分布在…
Vue的实例 创建第一个实例: {{}} 被称之为插值表达式.可以用来进行文本插值. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta…
1. 思维导图 源文件:Vue路线图.xmind 参考文献 [1]. VueJs2.0建议学习路线 - lavyun - 博客园 [2]. Vue学习路线图 - 个人文章 - SegmentFault 思否 [3]. Vue 框架-01- 入门篇 图文教程 - 肖朋伟 - CSDN博客  …
nodejs   windows下的调用方法: C:\Users\owen>node helloworld.jsHello WorldHello: 25 C:\Users\owen>node getmodule.jsHello BYVoid C:\Users\owen>node app.jsHTTP Server is listening at port 3000 或者 C:\Users\owen>node> require ('./app.js');HTTP Server…
 1. this._eventsCount = { }    这是为了避免不必要的深度遍历: 在有广播事件到来时,如果当前 vm 的 _eventsCount 为 0, 则不必向其子 vm 继续传播该事件. 2. 数据更新的diff机制 视图更新效率的焦点问题: 大列表的更新 和 深层数据更新 而大列表较为常见 repeat.js 首先diff(data, oldVms) 大概是先比较 新旧两个列表 的vm的数据状态, 然后 差量更新DOM 步骤: 1.遍历 新列表里的 每一项, 如果 该项的v…
/* */ 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…
Vue 的 _render 方法是实例的一个私有方法,它用来把实例渲染成一个虚拟 Node  ,返回的是一个VNode 在 Vue 的官方文档中介绍了 render 函数的第一个参数是 createElement,那么结合之前的例子: <div id="app"> {{ message }} </div> 相当于我们编写如下 render 函数: render: function (createElement) { return createElement('d…
Vue 中我们是通过 $mount 实例方法去挂载 vm 的 $mount 方法实际上会去调用 mountComponent 方法,mountComponent 核心就是先实例化一个渲染Watcher,在它的回调函数中会调用 updateComponent 方法,在此方法中调用 vm._render 方法先生成虚拟 Node,最终调用 vm._update更新 DOM. 先实例化一个渲染Watcher,在它的回调函数中会调用 updateComponent 方法 new Watcher(vm,…
Vue 初始化主要就干了几件事情,合并配置,初始化生命周期,初始化事件中心,初始化渲染,初始化 data.props.computed.watcher 等等.…
Vue细碎小点 生命周期钩子:created().mounted().updated().destroyed() 不要在选项属性或回调上使用箭头函数,比如 created: () => console.log(this.a) vm.$watch('a',newValue => this.myMethod()) 因为箭头函数是和父级上下文绑定在一起的,this不会是如你预期的Vue实例,经常导致 Uncaught TypeError: Cannot read property of undefi…
alert() 函数在 JavaScript 中并不常用,但它对于代码测试非常方便. <!DOCTYPE html> <html> <body> <h1>我的第一段 JavaScript</h1> <p> JavaScript 能够对事件作出反应.比如对按钮的点击: </p> <button type="button" onclick="alert('Welcome!')"&g…
解析神奇的 Object.defineProperty   几行代码看他怎么用   var a= {} Object.defineProperty( a, "b", { value:123 }); console.log(a.b); 很简单,它接受三个参数,而且都是必填的 等价于   var a= {} Object.defineProperty(a,"b",{ value:123, writable:false, enumerable:false, configu…
/* */ 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…
/** * 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…
/** * 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…