钩子函数

vue生命周期

妖精的绣舞 提交于 2020-04-08 11:53:28
1.beforeCreate 在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。 2.created 实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。 3.beforeMount 在挂载开始之前被调用:相关的 render 函数首次被调用。 4.mounted el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.$el 也在文档内。 5.beforeUpdate 数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。 你可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。 6.updated 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。 当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。 然而在大多数情况下, 你应该避免在此期间更改状态,因为这可能会导致更新无限循环。 该钩子在服务器端渲染期间不被调用。 7.beforeDestroy 实例销毁之前调用。在这一步,实例仍然完全可用。 8

05-Vue入门系列之Vue实例详解与生命周期

谁都会走 提交于 2020-03-27 06:41:50
原文地址 http://www.cnblogs.com/fly_dragon/p/6220273.html 05-Vue入门系列之Vue实例详解与生命周期 Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理、数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成、编译、挂着、销毁等过程进行js控制。 5.1. Vue实例初始化的选项配置对象详解 前面我们已经用了很多次 new Vue({...}) 的代码,而且Vue初始化的选项都已经用了 data 、 methods 、 el 、 computedd 等,估计您看到这里时,应该已经都明白了他们的作用,我们就详细讲解一下他们的使用情况。更详细的请参考 官网内容 5.1.1. Vue实例的的data对象 介绍 Vue的实例的数据对象data 我们已经用了很多了,数据绑定离不开data里面的数据。也是Vue的核心属性。 它是Vue绑定数据到HTML标签的数据源泉,另外Vue框架会自动监视data里面的数据变化,自动更新数据到HTML标签上去。本质原理是:Vue会自动将data里面的数据进行递归抓换成getter和setter,然后就可以自动更新HTML标签了,当然用getter和setter所以老的浏览器Vue支持的不够好。 data对象的类型:

线程池

江枫思渺然 提交于 2020-03-23 15:35:08
线程池 [TOC] 线程池概述 什么是线程池 为什么使用线程池 线程池的优势 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。 创建一个线程池并提交线程任务 线程池源码解析 参数认识 corePoolSize : 线程池的基本大小,当提交一个任务到线程池时,线程池会创建一个线程来执行任务,即使其他空闲的基本线程能够执行新任务也会创建线程,等到需要执行的任务数大于线程池基本大小时就不再创建。如果调用了线程池的prestartAllCoreThreads方法,线程池会提前创建并启动所有基本线程。 runnableTaskQueue:任务对列,用于保存等待执行的任务的阻塞队列。可以选择以下几个阻塞队列。 ArrayBlockingQueue:是一个基于数组结构的有界阻塞队列,此队列按 FIFO(先进先出)原则对元素进行排序。 LinkedBlockingQueue:一个基于链表结构的阻塞队列,此队列按FIFO (先进先出) 排序元素,吞吐量通常要高于ArrayBlockingQueue

源码浅析2--奇技淫巧

一个人想着一个人 提交于 2020-03-17 03:55:46
本篇是系列第二篇,标题起得有点大,希望内容对得起这个标题,这篇文章主要总结一下在 jQuery 中一些十分讨巧的 coding 方式,将会由浅及深,可能会有一些基础,但是我希望全面一点,对看文章的人都有所帮助,源码我还一直在阅读,也会不断的更新本文。 即便你不想去阅读源码,看看下面的总结,我想对提高编程能力,转换思维方式都大有裨益,废话少说,进入正题。 短路表达式 与 多重短路表达式 短路表达式这个应该人所皆知了。在 jQuery 中,大量的使用了短路表达式与多重短路表达式。 短路表达式:作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值。这是这两个操作符的一个重要属性。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // ||短路表达式 var foo = a || b; // 相当于 if (a){ foo = a; } else { foo = b; } // &&短路表达式 var bar = a && b; // 相当于 if (a){ bar = b; } else { bar = a; } 当然,上面两个例子是短路表达式最简单是情况,多数情况下,jQuery 是这样使用它们的: 1 2 3 4 5 6 7 8 9 // 选自 jQuery

jQuery源码浅析2–奇技淫巧

旧街凉风 提交于 2020-03-17 03:55:19
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美。 其结构明晰,高内聚、低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷、渐进增强)优雅的处理能力以及 Ajax 等方面周到而强大的定制功能无不令人惊叹。 另外,阅读源码让我接触到了大量底层的知识。对原生JS 、框架设计、代码优化有了全新的认识,接下来将会写一系列关于 jQuery 解析的文章。 我在 github 上关于 jQuery 源码的全文注解,感兴趣的可以围观一下。jQuery v1.10.2 源码注解 。 本篇是系列第二篇,标题起得有点大,希望内容对得起这个标题,这篇文章主要总结一下在 jQuery 中一些十分讨巧的 coding 方式,将会由浅及深,可能会有一些基础,但是我希望全面一点,对看文章的人都有所帮助,源码我还一直在阅读,也会不断的更新本文。 即便你不想去阅读源码,看看下面的总结,我想对提高编程能力,转换思维方式都大有裨益,废话少说,进入正题。 短路表达式 与 多重短路表达式 短路表达式这个应该人所皆知了。在 jQuery 中,大量的使用了短路表达式与多重短路表达式。 短路表达式:作为”&&”和”||”操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值

jQuery源码浅析2–奇技淫巧

偶尔善良 提交于 2020-03-17 03:54:30
http://www.cnblogs.com/coco1s/p/5303041.html @ChokCoco 最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美。 其结构明晰,高内聚、低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷、渐进增强)优雅的处理能力以及 Ajax 等方面周到而强大的定制功能无不令人惊叹。 另外,阅读源码让我接触到了大量底层的知识。对原生JS 、框架设计、代码优化有了全新的认识,接下来将会写一系列关于 jQuery 解析的文章。 我在 github 上关于 jQuery 源码的全文注解,感兴趣的可以围观一下。jQuery v1.10.2 源码注解 。 本篇是系列第二篇,标题起得有点大,希望内容对得起这个标题,这篇文章主要总结一下在 jQuery 中一些十分讨巧的 coding 方式,将会由浅及深,可能会有一些基础,但是我希望全面一点,对看文章的人都有所帮助,源码我还一直在阅读,也会不断的更新本文。 即便你不想去阅读源码,看看下面的总结,我想对提高编程能力,转换思维方式都大有裨益,废话少说,进入正题。 短路表达式 与 多重短路表达式 短路表达式这个应该人所皆知了。在 jQuery 中,大量的使用了短路表达式与多重短路表达式。 短路表达式:作为”&&”和”||”操作符的操作数表达式

GET/POST/g和钩子函数(hook)

匆匆过客 提交于 2020-03-16 03:58:35
GET请求和POST请求: 1. get请求: * 使用场景:如果只对服务器获取数据,并没有对服务器产生任何影响,那么这时候使用get请求。 * 传参:get请求传参是放在url中,并且是通过`?`的形式来指定key和value的。 2. post请求: * 使用场景:如果要对服务器产生影响,那么使用post请求。 * 传参:post请求传参不是放在url中,是通过`form data`的形式发送给服务器的。 GET和POST请求获取参数: 1. get请求是通过`flask.request.args`来获取。 2. post请求是通过`flask.request.form`来获取。 3. post请求在模板中要注意几点: * input标签中,要写name来标识这个value的key,方便后台获取。 * 在写form表单的时候,要指定`method='post'`,并且要指定`action='/login/'`。 保存全局变量的g属性: g:global 1. g对象是专门用来保存用户的数据的。 2. g对象在一次请求中的所有的代码的地方,都是可以使用的。 钩子函数(hook): 1. before_request: * 在请求之前执行的 * 是在视图函数执行之前执行的 * 这个函数只是一个装饰器,他可以把需要设置为钩子函数的代码放到视图函数执行之前来执行 2. context

vue监听子组件的生命周期钩子@hook

此生再无相见时 提交于 2020-03-09 04:27:22
需要在父组件上知道子组件什么时候被创建、挂载或者是更新,特别是当为原生js库创建组件时。 通过使用@hook:前缀监听生命周期中的钩子,并指定回调函数 举个例子,如果你想要在第三方组件v-runtime-template渲染时做一些事情,那么你可以监听它的生命周期中的updated钩子 <v-runtime-template @hook:updated="doSomething" :template="template" /> 你可能知道有一些方法可以在你自己的组件上,实现以上的需求。举个例子,通过在子组件的生命周期的钩子函数中,触发事件: mounted() { this.$emit("mounted"); } 然后你就可以在父组件中这样做: <Child @mounted="handleFn"/> 如果在第三方组件时,是办法这样实现的 取而代之的方法就是使用@hook前缀监听生命周期中的钩子,并指定回调函数 来源: CSDN 作者: KingLion_ 链接: https://blog.csdn.net/KingLion_/article/details/104728033

react-router中的路由钩子使用

孤者浪人 提交于 2020-03-08 03:33:37
在react项目中使用react-router的时候,经常遇到需要使用路由钩子的情况。 路由钩子的使用主要是两种情况: 一是进入路由 二是离开路由 而路由钩子的使用也有两种情况。 注:本博客只适用于react-router v3版本 第一种:onEnter 和 onLeave onEnter可以指定一个函数,它会在进入这个路由的时候执行这个函数 onLeave指定的函数会在离开路由的时候执行 const enterTab = () => { console.log('进入路由做一些事情,嘿嘿嘿') }const leaveTab = () => { console.log('要离开路由了')} <Router history={browserHistory}> <Route path='/' component={App}> <Route path='map' component={Map} onEnter={enterTab.bind(this)} onLeave={leaveTab.bind(this)}></Route> </Route> </Router> 不过这种路由钩子只能在定义路由的时候使用,要想在组件内部控制路由钩子就需要第二种用法 第二种:react-router的内置高阶组件withRouter 可以通过高阶组件withRouter对当前组件进行‘升级’

Vue 技术栈 快速学习 前端面试

大憨熊 提交于 2020-03-01 20:27:06
起因 一直想着要写一定深度的文章,然后觉得学习Vue是一个好的过程,本文将带你走进Vue的世界,支持国内框架! 如果看完本文还不懂Vue是什么的小伙伴,可以随便打博主!(斜眼笑),前方高能,本文可能篇幅比较长,建议收藏在闲暇时间学习,也欢迎伙伴们讨论留言学习! Vue -渐进式JavaScript框架 介绍 vue 中文网 vue github Vue.js 是一套构建用户界面(UI)的渐进式JavaScript框架 库和框架的区别 提问!你真的懂 前端框架(framework ) 与 库(library) 怎么区别吗? Library 库,本质上是一些函数的集合。每次调用函数,实现一个特定的功能,接着把控制权交给使用者 代表:jQuery jQuery这个库的核心:DOM操作,即:封装DOM操作,简化DOM操作 Framework 框架,是一套完整的解决方案,使用框架的时候,需要把你的代码放到框架合适的地方,框架会在合适的时机调用你的代码 框架规定了自己的编程方式,是一套完整的解决方案 使用框架的时候,由框架控制一切,我们只需要按照规则写代码 主要区别 You call Library, Framework calls you 核心点:谁起到主导作用(控制反转) 框架中控制整个流程的是框架 使用库,由开发人员决定如何调用库中提供的方法(辅助) 好莱坞原则:Don’t call