1、仅仅传入自定义参数 html : ddddd js : new Vue({...el:'#app', methods:{ tm:function(e){ console.log(e); } } }) 则将会输出数字123 2、仅仅传入事件对象 html...js : new Vue({ el:'#app', methods:{ tm:function(e){ console.log(e); } } }) 则将会输入事件对象...3、同时传入事件对象和自定义参数 html: ddddd js : new...methods:{ tm:function(e,value){ console.log(e); console.log(value); } } }) 则将会输入事件对象
前言 我们在学习集合的时候,出去list就是map集合使用比较多,今天主要说一下常用的HashMap底层的进化 干货 jdk7.0之前 数组 + 链表 阈值:30 jdk8.0开始...数组 + 链表 + 二叉树 阈值:30 HashMap底层在1.8之前是基于数组和链表组成 形成一个哈希表 首先数组的优点: 查找元素效率高 由于数组这个数据结构的特点 他们是等大连续...我们是需要根据hahCode()算出 哈希码值 然后根据哈希码值%分组组数看余数 通过余数判断应该去哪一个小组[查找进入的小组] 所以哈希表的表头应该用数组存储这个余数 方便查找 但是进入该小组之后...如果发现这个小组里面有元素需要 在详细作比较 如果比较完之后 发现该小组里面的元素 没有和新来的元素一样 那么新来元素需要插入进去 既然组内经常涉及到插入删除元素 那么应该考虑用链表结构...所以在8.0之前 先根据哈希码值计算去到哪个小组 表头用数组装 好查找 查找应该去到某个小组之后 开始往该小组里面插入、删除元素 所以组内又是拿着链表装 好添加、删除 > 但是在8.0及之后 考虑到可能算法不好
Con.4: Use const to define objects with values that do not change after construction Con.4:如果一个对象在构建之后值不会改变...,使用const定义它 Reason(原因) Prevent surprises from unexpectedly changed object values....防止对象值被意外修改的情况。...由于x没有定义为常量类型,我们必须假设它可能在循环的某处被修改。 Enforcement(实施建议) Flag unmodified non-const variables.
因为RecyclerView没有点击、长按事件,需要自己写 实现的方式比较多,可以通过adapter中自己去提供回调 废话不多说,直接看代码: public class GalleryAdapter...extends RecyclerView.Adapter { /** *定义回调接口 */ public interface OnItemClickLitener...{ void onItemClick(View view, int position);//点击事件 } /** * 单击 点击监听事件变量 */ private OnItemClickLitener...,长按事件是一样的做法,无非就是多一个方法了: public interface OnItemClickLitener { void onItemClick(View...view, int position); void onItemLongClick(View view , int position); } 然后在onBindViewHolder
required:true, // } } 事件传值(子向父传值): 1.在子组件中定义事件,用this....$emit("自定义的事件名", "传递的内容"); 2.在父级组件中的调用标签上绑定事件v-on:子组件中定义的事件名="父组件中要执行的事件($event)"进行接收; 3.在父级的methods中定义事件接收...父级事件名(形参){ this.要改变的参数名=形参; } 生命周期 new Vue()实例化vue对象; 在完成之前会有一个beforeCreate,它仅对事件进行一个配置,这时可以进行一个加载的动画...方法,在虚拟DOM中执行,页面还是看不到内容 之后是mounted,beforeMount之后编译的模板放入页面,mounted时模板编译完成,开始挂载;mounted结束页面就会显示出来;如有页面显示出来之后需要做的...,放在此方法里 页面显示完成了,组件也挂载了,此时对项目做一些更改(增删改查);会触发下一个钩子函数Update beforeUpdate:当前组件在更新之前的钩子 updated:组件在更新之后的钩子
原生的 v-model ,会根据标签的不同生成不同的事件与属性。解析一个指令来。自定义:自己写 model 属性,里面放上 prop 和 event ?...beforeCreate :实例初始化之后,数据观测之前调用 created:实例创建万之后调用。实例完成:数据观测、属性和方法的运算、 watch/event 事件回调。...无 $el . beforeMount:在挂载之前调用,相关 render 函数首次被调用 mounted:了被新创建的vm.$el替换,并挂载到实例上去之后调用改钩子。...beforeUpdate:数据更新前调用,发生在虚拟 DOM 重新渲染和打补丁,在这之后会调用改钩子。 updated:由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用改钩子。...destroyed:实例销毁之后调用,调用后,Vue 实例指示的所有东西都会解绑,所有事件监听器和所有子实例都会被移除 每个生命周期内部可以做什么?
beforeCreate :实例初始化之后,数据观测之前调用created:实例创建万之后调用。实例完成:数据观测、属性和方法的运算、watch/event 事件回调。...beforeUpdate:数据更新前调用,发生在虚拟DOM重新渲染和打补丁,在这之后会调用改钩子。updated:由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用改钩子。...updated(更新后) :在由于数据更改导致的虚拟DOM重新渲染和打补丁之后调用。此时 DOM 已经根据响应式数据的变化更新了。调用时,组件 DOM已经更新,所以可以执行依赖于DOM的操作。...) 和 event/watcher 事件配置之前被调用。...当使用自定义指令直接修改 value 值时绑定v-model的值也不会同步更新;如必须修改可以在自定义指令中使用keydown事件,在vue组件中使用 change事件,回调中修改vue数据;(1)自定义指令基本内容全局定义
beforeCreate :实例初始化之后,数据观测之前调用created:实例创建万之后调用。实例完成:数据观测、属性和方法的运算、watch/event 事件回调。...无$el .beforeMount:在挂载之前调用,相关render 函数首次被调用mounted:了被新创建的vm.$el替换,并挂载到实例上去之后调用改钩子。...beforeUpdate:数据更新前调用,发生在虚拟DOM重新渲染和打补丁,在这之后会调用改钩子。updated:由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用改钩子。...destroyed:实例销毁之后调用,调用后,Vue实例指示的所有东西都会解绑,所有事件监听器和所有子实例都会被移除每个生命周期内部可以做什么?...当使用自定义指令直接修改 value 值时绑定v-model的值也不会同步更新;如必须修改可以在自定义指令中使用keydown事件,在vue组件中使用 change事件,回调中修改vue数据;(1)自定义指令基本内容全局定义
beforeCreate :实例初始化之后,数据观测之前调用created:实例创建万之后调用。实例完成:数据观测、属性和方法的运算、watch/event 事件回调。...无$el .beforeMount:在挂载之前调用,相关render 函数首次被调用mounted:了被新创建的vm.$el替换,并挂载到实例上去之后调用改钩子。...beforeUpdate:数据更新前调用,发生在虚拟DOM重新渲染和打补丁,在这之后会调用改钩子。updated:由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用改钩子。...beforeCreate :实例初始化之后,数据观测之前调用created:实例创建万之后调用。实例完成:数据观测、属性和方法的运算、watch/event 事件回调。...beforeUpdate:数据更新前调用,发生在虚拟DOM重新渲染和打补丁,在这之后会调用改钩子。updated:由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用改钩子。
在 JRockit 虚拟机时代,就有这样一个工具用来记录 Java 虚拟机运行时各项数据。...在 Oracle 收购 Sun 公司之后,Hotspot 虚拟机时代,也一直延续了这个工具: JFR 0.9 版本对应 JDK 7 和JDK 8:JDK 7u40 之后,实现了和 JRockit Flight...而且,在 JDK 8u40 之后,可以在运行时灵活地打开关闭 JFR。...JFR 1.0 版本对应 JDK 9 和 JDK 10: 在这一版本之后,增加了 JFR 事件接口,用户可以生产或者消费某种事件。...可以看出,在 19:40 开启 default,之后请求数量回归峰值之前,CPU Load 基本和之前一样,可以视为无影响。
)——定义了调试对象(一个 Java 应用程序)和调试器进程之间的通信协议 JVMTI 提供了一套"代理"程序机制,可以支持第三方工具程序以代理的方式连接和访问 JVM,并利用 JVMTI 提供的丰富的编程接口...两种加载形式所加载的Instrument Agent都关注同一个JVMTI事件 – ClassFileLoadHook事件,这个事件是在读取字节码文件之后回调时用,也就是说premain和agentmain...方式的回调时机都是类文件字节码读取之后(或者说是类加载之后),之后对字节码进行重定义或重转换,不过修改的字节码也需要满足一些要求,在最后的局限性有说明。...然后在main之前有一些类经过了transform,在main启动之后还有类经过transform,main结束之后也还有类经过transform,可以和agentmain的结果对比下。...,在 JVM 初始化完成之后做下面的事情: (1)创建 InstrumentationImpl 对象 ; (2)监听 ClassFileLoadHook 事件 ; (3)调用 InstrumentationImpl
,数据观测和事件配置之前调用 created 实例创建完成之后被调用 beforeMount... 在挂载开始之前被调用 mounted 挂载到实例上之后再去调用钩子 ...监听当前实例上的自定义事件 vm....$once(event,callback) 监听一个自定义事件,但只触发一次 vm....v-once 只渲染元素和组件一次 特殊属性 key 主要用于vue的虚拟DOM 算法 ref
虚拟DOM本质上是JavaScript对象,是对真实DOM的抽象 状态变更时,记录新树和旧树的差异 最后把差异更新到真正的dom中 说说Vue的生命周期吧 什么时候被调用?...beforeCreate :实例初始化之后,数据观测之前调用 created:实例创建万之后调用。实例完成:数据观测、属性和方法的运算、watch/event 事件回调。...无$el . beforeMount:在挂载之前调用,相关render 函数首次被调用 mounted:了被新创建的vm.$el替换,并挂载到实例上去之后调用改钩子。...beforeUpdate:数据更新前调用,发生在虚拟DOM重新渲染和打补丁,在这之后会调用改钩子。 updated:由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用改钩子。...$nextTick 是在下次 DOM 更新循环结束之后立即执行延迟回调。在修改数据之后使用,则可以在回调中获取更新后的 DOM。
虚拟DOM的diff和patch都是在一次更新中自动进行的,我们无需手动操作DOM,极大提高开发效率跨平台: 虚拟DOM本质上是JavaScript对象,而DOM与平台强相关,相比之下虚拟DOM可以进行更方便地跨平台操作...hash或者popstate事件回调里根据path匹配对应路由将router定义成一个Vue插件,即实现install方法,内部做两件事实现两个全局组件:router-link和router-view,...,watchEffect不需要watch只能监听响应式数据:ref定义的属性和reactive定义的对象,如果直接监听reactive定义对象中的属性是不允许的(会报警告),除非使用函数转换一下。...这种在缓冲时去除重复数据对于避免不必要的计算和 DOM 操作是非常重要的。然后,在下一个的事件循环tick中,Vue 刷新队列并执行实际(已去重的)工作。vue和react的区别=> 相同点:1....,数据观测(data observer) 和 event/watcher 事件配置之前被调用。
,数据观测 (data observer) //和 event/watcher 事件配置之前被调用。...DOM 重新渲染和打补丁之前。...}, updated() { //数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。...在此钩子中,出于性能的考虑需移除在componentDidMount添加的事件订阅,网络请求等。...componentDidMount添加的事件订阅,网络请求等 } } 总结 在Vue中,state对象并不是必须的,数据由data属性在Vue对象中进行管理。
beforeCreate :实例初始化之后,数据观测之前调用 created:实例创建万之后调用。实例完成:数据观测、属性和方法的运算、watch/event 事件回调。...无$el . beforeMount:在挂载之前调用,相关render 函数首次被调用 mounted:了被新创建的vm.$el替换,并挂载到实例上去之后调用改钩子。...beforeUpdate:数据更新前调用,发生在虚拟DOM重新渲染和打补丁,在这之后会调用改钩子。 updated:由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用改钩子。...destroyed:实例销毁之后调用,调用后,Vue实例指示的所有东西都会解绑,所有事件监听器和所有子实例都会被移除 每个生命周期内部可以做什么?...v-if 是真正的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建;也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。
dom 虚拟DOM是根据页面上真实DOM映射出来的一个对象,他本身只是对真实DOM的抽象,使用对象的属性来描述节点,最后通过操作使虚拟DOM映射到真实DOM上,创建虚拟DOM是为了更好的将虚拟节点渲染到页面上...首先防抖和节流都是为了提高页面性能进行的优化方案,首先说防抖,他一般是用在按钮操作上,比如我连续点击一个按钮,这个时候我可以设置一个延时,让点击事件按照我设置的事件之后执行,如果我不停的点击,那么我的时间就不听的重置...,从而达到只会在我设置的时间之后执行的效果,避免事件反复高频的执行,进而提高页面的性能,节流一般是在页面滚动的时候,我们反复触发滚动事件的时候,我们可以设置比如2秒执行一次的这样一个效果,不管滚动的多快...,但是缺点比较明显,第一个是存储的内容比较少,第二个是设置太麻烦,需要setCookie等操作,过期时间也比较麻烦,之后出现了sessionStorage和localStorage,这两种是为了弥补之前...这个现象就叫做margin重叠 登录的时候涉及到哪些操作 登录信息的校验、记住密码的操作(提高用户体验)、登陆之前验证之前用户有没有记住密码的操作,有的话,需要获取缓存,避免用户重复输入、登录之后要记录授权信息
说实在的这个在之前我只会用 ,对于他的原理什么的我还真的不是很清楚 , 还好在网上找到了 一个说的比较详细的答案 nextTick批量异步更新策略,一句话概括在下次DOM更新循环结束之后执行延迟回调...可以通过model属性的prop和event属性来进行自定义。原生的v-model,会根据标签的不同生成不同的事件和属性。...换句话说:Vue支持 2 种事件类型,原生 DOM 事件和自定义事件。...这就是虚拟Dom的产生原因。 Vue2的虚拟Dom借鉴了开源库snabbdom的实现。 虚拟Dom本质就是用一个原生的JS对象去描述一个DOM节点。是对真实DOM的一层抽象。...(也就是源码中的VNode类,它定义在src/core/vdom/vnode.js中。) 虚拟Dom映射到真实DOM要经历VNode的create、diff、patch等阶段。
Vue生命周期 一共8个阶段 详细说明生命周期: beforeCreate:(创建前)在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。...beforeCreate(创建前) 在数据观测和初始化事件还未开始 created(创建后) 完成数据观测,属性和方法的运算,初始化事件,$el属性还没有显示出来 beforeMount(载入前) 在挂载开始之前被调用...beforeUpdate(更新前) 在数据更新之前调用,发生在虚拟DOM重新渲染和打补丁之前。可以在该钩子中进一步地更改状态,不会触发附加的重渲染过程。...updated(更新后) 在由于数据更改导致的虚拟DOM重新渲染和打补丁之后调用。调用时,组件DOM已经更新,所以可以执行依赖于DOM的操作。...该钩子在服务器端渲染期间不被调用。 beforeDestroy(销毁前) 在实例销毁之前调用。实例仍然完全可用。 destroyed(销毁后) 在实例销毁之后调用。
created(创建后) 完成数据观测,属性和方法的运算,初始化事件,el属性还没有显示出来beforeMount(载入前) 在挂载开始之前被调用,相关的render函数首次被调用。...beforeUpdate(更新前) 在数据更新之前调用,发生在虚拟DOM重新渲染和打补丁之前。可以在该钩子中进一步地更改状态,不会触发附加的重渲染过程。...updated(更新后) 在由于数据更改导致的虚拟DOM重新渲染和打补丁之后调用。调用时,组件DOM已经更新,所以可以执行依赖于DOM的操作。...该钩子在服务器端渲染期间不被调用。beforeDestroy(销毁前) 在实例销毁之前调用。实例仍然完全可用。destroyed(销毁后) 在实例销毁之后调用。...的区别就在于它不是写入而是替换修改浏览历史中当前纪录,其余和 pushState一模一样 4.popstate事件 定义:每当同一个文档的浏览历史(即history对象)出现变化时,就会触发popstate
领取专属 10元无门槛券
手把手带您无忧上云