30
2019
01

Vue生命周期

Vue.js 实例生命周期

init: 在实例开始初始化时同步调用。此时数据观测、事件等都尚未初始化。 2.0 中更名为 beforeCreate。
created :在实例创建之后调用。此时已完成数据绑定、事件方法,但尚未开始 DOM 编译,即未挂载到 document 中。
beforeCompile: 在 DOM 编译前调用。 2.0 废弃了该方法,推荐使用 created。
beforeMount: 2.0 新增的生命周期钩子,在 mounted 之前运行。
compiled: 在编译结束时调用。此时所有指令已生效,数据变化已能触发 DOM 更新,但不保证 $el 已插入文档。 2.0 中更名为 mounted。
ready :在编译结束和 $el 第一次插入文档之后调用。 2.0 废弃了该方法,推荐使用 mounted。这个变化其实已经改变了ready这个生命周期状态,相当于取消了在$el首次插入文档后的钩子函数。
attached :在 vm.$el 插入 DOM 时调用, ready 会在第一次 attached 后调用。操作 $el必须使用指令或实例方法(例如 $appendTo()),直接操作 vm.$el 不会触发这个钩子。 2.0 废弃了该方法,推荐在其他钩子中自定义方法检查是否已挂载。
detached: 同 attached 类似,该钩子在 vm.$el 从 DOM 删除时调用,而且必须是指令或实例方法。 2.0 中同样废弃了该方法。
beforeDestroy: 在开始销毁实例时调用,此刻实例仍然有效。
destroyed: 在实例被销毁之后调用。此时所有绑定和实例指令都已经解绑,子实例也被销毁。
beforeUpdate: 2.0 新增的生命周期钩子,在实例挂载之后,再次更新实例(例如更新data)时会调用该方法,此时尚未更新 DOM 结构。
updated:2.0 新增的生命周期钩子,在实例挂载之后,再次更新实例并更新完 DOM 结构后调用。
activated : 2.0 新增的生命周期钩子,需要配合动态组件 keep-live 属性使用。在动态组件初始化渲染的过程中调用该方法。

14
2019
01

JavaScript instanceof 深入讲解(转)

JavaScript instanceof 运算符深入剖析

https://www.ibm.com/developerworks/cn/web/1306_jiangjj_jsinstanceof/

12
2019
01

es5 json对象转换

1. JSON.stringify(obj/arr)

    js对象(数组)转换为json对象(数组)

2. JSON.parse(json)

    json对象(数组)转换为js对象(数组)


12
2019
01

es5 严格模式

1. 理解:

- 除了正常运行模式(混杂模式),ES5添加了第二种运行模式:"严格模式"(strict mode)。

   - 顾名思义,这种模式使得Javascript在更严格的语法条件下运行

2.  目的/作用

- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为

10
2019
01

js splice()方法

splice()方法,这个方法恐怕要算是最强大的数组方法了,它有很多种用法。splice()的主要用途是向数组的中部插入项,但使用这种方法的方式则有如下 3 种。

 删除:可以删除任意数量的项,只需指定 2 个参数:要删除的第一项的位置和要删除的项数。

例如,splice(0,2)会删除数组中的前两项。

 插入:可以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、0(要删除的项数)

和要插入的项。如果要插入多个项,可以再传入第四、第五,以至任意多个项。例如,

10
2019
01

js 检测数组

自从 ECMAScript 3 做出规定以后,就出现了确定某个对象是不是数组的经典问题。对于一个网页,

或者一个全局作用域而言,使用 instanceof 操作符就能得到满意的结果:

var arr = ["111","222","333"];
                if(arr instanceof Array)
                {
                    alert("arr is Array");
                }

为了解决这个问题,ECMAScript 5 新增了 Array.isArray()方法。这个方法的目的是最终确定某

09
2019
01

js异步脚本

HTML5 为<script>元素定义了 async 属性。这个属性与 defer 属性类似,都用于改变处理脚本的行为。同样与 defer 类似,async 只适用于外部脚本文件,并告诉浏览器立即下载文件。但与 defer不同的是,标记为 async 的脚本并不保证按照指定它们的先后顺序执行。例如:

<!DOCTYPE html> 
<html> 
 <head> 
 <title>Example HTML Page</title> 
 <script type="text/javascript" async src="example1.js"></script> 
 <script type="text/javascript" async src="example2.js"></script> 
 </head> 
 <body> 
 <!-- 这里放内容 --> 
 </body> 
</html>

在以上代码中,第二个脚本文件可能会在第一个脚本文件之前执行。因此,确保两者之间互不依赖

09
2019
01

js延迟脚本

HTML 4.01 为<script>标签定义了 defer 属性。这个属性的用途是表明脚本在执行时不会影响页

面的构造。也就是说,脚本会被延迟到整个页面都解析完毕后再运行。因此,在<script>元素中设置

defer 属性,相当于告诉浏览器立即下载,但延迟执行。

<!DOCTYPE html> 
<html> 
 <head> 
 <title>Example HTML Page</title> 
 <script type="text/javascript" defer="defer" src="example1.js"></script> 
 <script type="text/javascript" defer="defer" src="example2.js"></script> 
 </head> 
 <body> 
 <!-- 这里放内容 --> 
 </body> 
</html>

在这个例子中,虽然我们把<script>元素放在了文档的<head>元素中,但其中包含的脚本将延迟

«1»