add:Vue.js 2.X(自定义指令)
This commit is contained in:
		
							parent
							
								
									380dcbf89f
								
							
						
					
					
						commit
						712ee55dd6
					
				@ -3,6 +3,10 @@
 | 
			
		||||
## 日常操作积累
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### 修改已经commit的备注信息
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### 将 `branch1`的某个`commit1`合并到`branch2`当中
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -530,7 +530,7 @@ Vue也提供了一个接口用来供程序员定义属于自己的特殊逻辑
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### 自定义私有过滤器
 | 
			
		||||
## 自定义私有过滤器
 | 
			
		||||
 | 
			
		||||
**私有过滤器**:在某一个 vue 对象内部定义的过滤器称之为私有过滤器。这种过滤器只有在当前vue对象的el指定的监管区域有用。
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -22,7 +22,7 @@ Vue内置的按键修饰符:
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
比如说,`keyup`指的是,键盘抬起时的监听事件。`.enter`指的是按enter键的按键修饰符。
 | 
			
		||||
比如说,`keyup`指的是:键盘(任何键位)抬起时的监听事件。`.enter`指的是:按enter键的按键修饰符。我们把这两个结合起来看看。
 | 
			
		||||
 | 
			
		||||
**`@keyup.enter`举例**:按enter键后的监听事件
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,7 @@ Vue内置的按键修饰符:
 | 
			
		||||
	<input type="text" v-model="formData.name" @keyup.enter="addData">
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
注意,如果写成`@keyup="addData"`,效果却是:只要键盘打了字(还没来得及按enter键),就会执行addData()方法,这种效果显然不是我们想要的。
 | 
			
		||||
注意,如果写成`@keyup="addData"`,效果却是:只要键盘的任何键位打了字(还没来得及按enter键),就会执行addData()方法,这种效果显然不是我们想要的。所以要加上修饰符`.enter`,表示只针对enter键。
 | 
			
		||||
 | 
			
		||||
### 自定义的按键修饰符
 | 
			
		||||
 | 
			
		||||
@ -65,13 +65,13 @@ Vue内置的按键修饰符:
 | 
			
		||||
 | 
			
		||||
然后,我们就可以使用键盘码的别名了。
 | 
			
		||||
 | 
			
		||||
## 自定义指令
 | 
			
		||||
## 自定义全局指令
 | 
			
		||||
 | 
			
		||||
### 自定义全局指令的举例
 | 
			
		||||
### 自定义全局指令的举例1
 | 
			
		||||
 | 
			
		||||
**举例**:网页打开后,让指定文本框自动获取焦点。
 | 
			
		||||
**举例1**:让指定文本框自动获取焦点
 | 
			
		||||
 | 
			
		||||
如果我们想实现上面的例子,原生js的写法是:
 | 
			
		||||
如果我们想实现这个例子,原生js的写法是:
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
    //原生js写法:网页一打开,就让指定的输入框自动获取焦点
 | 
			
		||||
@ -84,16 +84,16 @@ Vue内置的按键修饰符:
 | 
			
		||||
 | 
			
		||||
但我们不建议这样做。我们可以通过Vue中的自定义指令来实现这个例子。步骤如下。
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(1)使用`Vue.directive()`自定义全局指令:
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
 | 
			
		||||
    //自定义全局指令 v-focus:让文本框自动获取焦点
 | 
			
		||||
    //参数1:指令的名称。注意,在定义的时候,指令的名称前面,不需要加 v- 前缀;但是:在`调用`的时候,必须在指令名称前 加上 v- 前缀
 | 
			
		||||
    //参数2:是一个对象,这个对象身上,有一些指令相关的函数,这些函数可以在特定的阶段,执行相关的操作
 | 
			
		||||
    Vue.directive('focus', {
 | 
			
		||||
    	//在每个函数中,第一个参数,永远是 el ,表示 被绑定了指令的那个元素,这个 el 参数,是一个原生的JS对象(DOM对象)
 | 
			
		||||
        bind: function (el) { // 每当指令绑定到元素上的时候,会立即执行这个 bind 函数,只执行一次
 | 
			
		||||
        bind: function (el) { // 每当指令绑定到元素上的时候,会立即执行这个 bind 函数,【只执行一次】
 | 
			
		||||
            // 在元素 刚绑定了指令的时候,还没有 插入到 DOM中去,这时候,调用 focus 方法没有作用
 | 
			
		||||
            //  因为,一个元素,只有插入DOM之后,才能获取焦点
 | 
			
		||||
            // el.focus()
 | 
			
		||||
@ -102,14 +102,15 @@ Vue内置的按键修饰符:
 | 
			
		||||
            el.focus()
 | 
			
		||||
            // 和JS行为有关的操作,最好在 inserted 中去执行,放置 JS行为不生效
 | 
			
		||||
        },
 | 
			
		||||
        updated: function (el) {  // 当VNode更新的时候,会执行 updated, 可能会触发多次
 | 
			
		||||
        updated: function (el) {  // 当VNode更新的时候,会执行 updated, 【可能会触发多次】
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
    })
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
上方的代码中,如果我们把`el.focus()`这行代码写在`bind`方法里,是没有效果的(但不会报错)。没有效果是因为,在执行到`bind`方法的时候,元素还没有插入到dom中去。
 | 
			
		||||
 | 
			
		||||
上方的代码中,
 | 
			
		||||
由此可以看看出:`bind`、`inserted`、`updated`这三个钩子函数的执行时机不同,且执行的次数有区别。
 | 
			
		||||
 | 
			
		||||
(2)在指定的文本框上加``:
 | 
			
		||||
 | 
			
		||||
@ -117,5 +118,258 @@ Vue内置的按键修饰符:
 | 
			
		||||
<input type="text" id="search" v-model="keywords" v-focus>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
完整版代码如下:
 | 
			
		||||
 | 
			
		||||
```html
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="en">
 | 
			
		||||
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset="UTF-8">
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
			
		||||
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
 | 
			
		||||
    <title>Document</title>
 | 
			
		||||
    <script src="vue2.5.16.js"></script>
 | 
			
		||||
</head>
 | 
			
		||||
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
    <div id="app">
 | 
			
		||||
        搜索框:
 | 
			
		||||
        <input type="text" id="search" v-model="name" v-focus>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <script>
 | 
			
		||||
 | 
			
		||||
        //自定义全局指令 v-focus,让文本框自动获取焦点
 | 
			
		||||
        //参数1:指令的名称。注意,在定义的时候,指令的名称前面,不需要加 v- 前缀;但是:在`调用`的时候,必须在指令名称前 加上 v- 前缀
 | 
			
		||||
        //参数2:是一个对象,这个对象身上,有一些指令相关的函数,这些函数可以在特定的阶段,执行相关的操作
 | 
			
		||||
        Vue.directive('focus', {
 | 
			
		||||
            //在每个函数中,第一个参数,永远是 el ,表示 被绑定了指令的那个元素,这个 el 参数,是一个原生的JS对象(DOM对象)
 | 
			
		||||
            bind: function (el) { // 每当指令绑定到元素上的时候,会立即执行这个 bind 函数,【只执行一次】
 | 
			
		||||
                // 在元素 刚绑定了指令的时候,还没有 插入到 DOM中去,这时候,调用 focus 方法没有作用
 | 
			
		||||
                //  因为,一个元素,只有插入DOM之后,才能获取焦点
 | 
			
		||||
                // el.focus()
 | 
			
		||||
            },
 | 
			
		||||
            inserted: function (el) {  // inserted 表示元素 插入到DOM中的时候,会执行 inserted 函数【触发1次】
 | 
			
		||||
                el.focus()
 | 
			
		||||
                // 和JS行为有关的操作,最好在 inserted 中去执行,防止 JS行为不生效
 | 
			
		||||
            },
 | 
			
		||||
            updated: function (el) {  // 当VNode更新的时候,会执行 updated, 【可能会触发多次】
 | 
			
		||||
            }
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        new Vue({
 | 
			
		||||
            el: '#app',
 | 
			
		||||
            data: {
 | 
			
		||||
                name: 'smyhvae'
 | 
			
		||||
            }
 | 
			
		||||
        })
 | 
			
		||||
    </script>
 | 
			
		||||
</body>
 | 
			
		||||
 | 
			
		||||
</html>
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### 自定义全局指令:使用钩子函数的第二个binding参数拿到传递的值
 | 
			
		||||
 | 
			
		||||
**举例2**:设置DOM元素的color样式
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
参考举例1中的写法,我们可能会这样给DOM元素设置样式:
 | 
			
		||||
 | 
			
		||||
```html
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="en">
 | 
			
		||||
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset="UTF-8">
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
			
		||||
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
 | 
			
		||||
    <title>Document</title>
 | 
			
		||||
    <script src="vue2.5.16.js"></script>
 | 
			
		||||
</head>
 | 
			
		||||
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
    <div id="app">
 | 
			
		||||
        搜索框:
 | 
			
		||||
        <input type="text" id="search" v-model="name" v-color>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <script>
 | 
			
		||||
 | 
			
		||||
        //自定义全局指令 v-color:设置DOM元素的color属性
 | 
			
		||||
        Vue.directive('color', {
 | 
			
		||||
            bind: function (el) { // 每当指令绑定到元素上的时候,会立即执行这个 bind 函数,【只执行一次】
 | 
			
		||||
                el.style.color = 'red';
 | 
			
		||||
            },
 | 
			
		||||
            inserted: function (el) {  // inserted 表示元素 插入到DOM中的时候,会执行 inserted 函数【触发1次】
 | 
			
		||||
                // 和JS行为有关的操作,最好在 inserted 中去执行,防止 JS行为不生效
 | 
			
		||||
                //el.focus()
 | 
			
		||||
            },
 | 
			
		||||
            updated: function (el) {  // 当VNode更新的时候,会执行 updated, 【可能会触发多次】
 | 
			
		||||
            }
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        new Vue({
 | 
			
		||||
            el: '#app',
 | 
			
		||||
            data: {
 | 
			
		||||
                name: ''
 | 
			
		||||
            }
 | 
			
		||||
        })
 | 
			
		||||
    </script>
 | 
			
		||||
</body>
 | 
			
		||||
 | 
			
		||||
</html>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
如上方代码所示,我们自定义了一个指令`v-color`,然后在`input`标签中用上了这个指令,就给元素设置了color属性。但是这个代码有个弊端是:color的属性值在定义指令的时候,被写死了。如何完善呢?我们可以在DOM元素中传参。一起来看看。
 | 
			
		||||
 | 
			
		||||
代码如下:【荐】
 | 
			
		||||
 | 
			
		||||
```html
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="en">
 | 
			
		||||
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset="UTF-8">
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
			
		||||
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
 | 
			
		||||
    <title>Document</title>
 | 
			
		||||
    <script src="vue2.5.16.js"></script>
 | 
			
		||||
</head>
 | 
			
		||||
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
    <div id="app">
 | 
			
		||||
        搜索框1:
 | 
			
		||||
        <input type="text" id="search" v-model="name" v-color="'green'">
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <script>
 | 
			
		||||
 | 
			
		||||
        //自定义全局指令 v-color:设置DOM元素的color属性
 | 
			
		||||
        Vue.directive('color', {
 | 
			
		||||
            // 样式,只要通过指令绑定给了元素,不管这个元素有没有被插入到页面中去,这个元素肯定有了一个内联的样式
 | 
			
		||||
            // 将来元素肯定会显示到页面中,这时候,浏览器的渲染引擎必然会解析样式,应用给这个元素
 | 
			
		||||
            // 意思是说,我们可以把样式的代码写到bind中去(即使这个时候,dom元素还没有被创建)
 | 
			
		||||
            bind: function (el, binding) { // 每当指令绑定到元素上的时候,会立即执行这个 bind 函数,【只执行一次】
 | 
			
		||||
 | 
			
		||||
                console.log(binding.name); //打印结果:color
 | 
			
		||||
                console.log(binding.value); //打印结果:green
 | 
			
		||||
                console.log(binding.expression);  //'green'
 | 
			
		||||
 | 
			
		||||
                el.style.color = binding.value// 通过bining拿到v-color中传递过来的值
 | 
			
		||||
 | 
			
		||||
            },
 | 
			
		||||
            inserted: function (el) {  // inserted 表示元素 插入到DOM中的时候,会执行 inserted 函数【触发1次】
 | 
			
		||||
                // 和JS行为有关的操作,最好在 inserted 中去执行,防止 JS行为不生效
 | 
			
		||||
                //el.focus()
 | 
			
		||||
            },
 | 
			
		||||
            updated: function (el) {  // 当VNode更新的时候,会执行 updated, 【可能会触发多次】
 | 
			
		||||
            }
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        new Vue({
 | 
			
		||||
            el: '#app',
 | 
			
		||||
            data: {
 | 
			
		||||
                name: 'smyhvae'
 | 
			
		||||
            }
 | 
			
		||||
        })
 | 
			
		||||
    </script>
 | 
			
		||||
</body>
 | 
			
		||||
 | 
			
		||||
</html>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
上方代码中,bind方法里传递的第二个参数`binding`,可以拿到DOM元素中`v-color`里填的值。注意,`v-color="'green'"`,这里面写的是字符串常量;如果去掉单引号,就成了变量,不是我们想要的。
 | 
			
		||||
 | 
			
		||||
效果:
 | 
			
		||||
 | 
			
		||||
20180610_1323.png
 | 
			
		||||
 | 
			
		||||
**自定义全局指令的简写形式**:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
在很多时候,你可能想在 bind 和 update 时触发相同行为,而不关心其它的钩子。比如上面的代码中,我们可以写成简写形式:
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
        Vue.directive('color', function (el, binding) { //注意,这个function等同于把代码写到了 bind 和 update 中去
 | 
			
		||||
            el.style.color = binding.value
 | 
			
		||||
        })
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## 自定义私有指令
 | 
			
		||||
 | 
			
		||||
**自定义私有指令**:在某一个 vue 对象内部自定义的指令称之为私有指令。这种指令只有在当前vue对象的el指定的监管区域有用。
 | 
			
		||||
 | 
			
		||||
代码举例:(设置文字的font-weight属性)
 | 
			
		||||
 | 
			
		||||
```html
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="en">
 | 
			
		||||
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset="UTF-8">
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
			
		||||
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
 | 
			
		||||
    <title>Document</title>
 | 
			
		||||
    <script src="vue2.5.16.js"></script>
 | 
			
		||||
</head>
 | 
			
		||||
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
    <div id="app">
 | 
			
		||||
        <span v-fontweight="600">生命壹号</span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <script>
 | 
			
		||||
 | 
			
		||||
        new Vue({
 | 
			
		||||
            el: '#app',
 | 
			
		||||
            data: {
 | 
			
		||||
                name: 'smyhvae'
 | 
			
		||||
            },
 | 
			
		||||
            //自定义私有指令
 | 
			
		||||
            directives: {
 | 
			
		||||
                'fontweight': {
 | 
			
		||||
                    bind: function (el, binding) {
 | 
			
		||||
                        el.style.fontWeight = binding.value;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        })
 | 
			
		||||
    </script>
 | 
			
		||||
</body>
 | 
			
		||||
 | 
			
		||||
</html>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
效果:
 | 
			
		||||
 | 
			
		||||
20180610_1400.png
 | 
			
		||||
 | 
			
		||||
注意, el.style.fontWeight设置属性值,至少要600,否则看不到加粗的效果。
 | 
			
		||||
 | 
			
		||||
**自定义私有指令的简写形式**:
 | 
			
		||||
 | 
			
		||||
在很多时候,你可能想在 bind 和 update 时触发相同行为,而不关心其它的钩子。比如上面的代码中,我们可以写成简写形式:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
            //自定义私有指令(简写形式)
 | 
			
		||||
            directives: {
 | 
			
		||||
                'fontweight': function (el, binding) { //注意,这个function等同于把代码写到了 bind 和 update 中去
 | 
			
		||||
                    el.style.fontWeight = binding.value;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										88
									
								
								21-Vue基础/02-Vue实例的生命周期函数.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								21-Vue基础/02-Vue实例的生命周期函数.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,88 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## 介绍
 | 
			
		||||
 | 
			
		||||
### 定义
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[vue实例的生命周期](https://cn.vuejs.org/v2/guide/instance.html#实例生命周期):从Vue实例创建、运行、到销毁期间,总是伴随着各种各样的事件,这些事件,统称为生命周期。
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[生命周期钩子](https://cn.vuejs.org/v2/api/#选项-生命周期钩子):就是生命周期事件的别名而已。
 | 
			
		||||
 | 
			
		||||
生命周期钩子 = 生命周期函数 = 生命周期事件。
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### 主要的生命周期函数分类
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
创建期间的生命周期函数:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    + beforeCreate:实例刚在内存中被创建出来,此时,还没有初始化好 data 和 methods 属性
 | 
			
		||||
    + created:实例已经在内存中创建OK,此时 data 和 methods 已经创建OK,此时还没有开始 编译模板
 | 
			
		||||
    + beforeMount:此时已经完成了模板的编译,但是还没有挂载到页面中
 | 
			
		||||
    + mounted:此时,已经将编译好的模板,挂载到了页面指定的容器中显示
 | 
			
		||||
 - 运行期间的生命周期函数:
 | 
			
		||||
    + beforeUpdate:状态更新之前执行此函数, 此时 data 中的状态值是最新的,但是界面上显示的 数据还是旧的,因为此时还没有开始重新渲染DOM节点
 | 
			
		||||
    + updated:实例更新完毕之后调用此函数,此时 data 中的状态值 和 界面上显示的数据,都已经完成了更新,界面已经被重新渲染好了!
 | 
			
		||||
 - 销毁期间的生命周期函数:
 | 
			
		||||
    + beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用。
 | 
			
		||||
    + destroyed:Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Vue 2.0的生命周期函数
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
```html
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="en">
 | 
			
		||||
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset="UTF-8">
 | 
			
		||||
    <title>Title</title>
 | 
			
		||||
    <script src="vue2.5.16.js"></script>
 | 
			
		||||
</head>
 | 
			
		||||
 | 
			
		||||
<body>
 | 
			
		||||
    <!--这个div区域就是MVVM中的 View-->
 | 
			
		||||
    <div id="app">
 | 
			
		||||
    </div>
 | 
			
		||||
</body>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
    new Vue({
 | 
			
		||||
        el: '#app',
 | 
			
		||||
        data: {
 | 
			
		||||
            msg: 'hello vuejs'
 | 
			
		||||
        },
 | 
			
		||||
        beforeCreate: function () {
 | 
			
		||||
            console.log('1.0 beforeCreate', this.msg);
 | 
			
		||||
        }
 | 
			
		||||
        ,
 | 
			
		||||
        created: function () {
 | 
			
		||||
            console.log('2.0 created', this.msg);
 | 
			
		||||
        }
 | 
			
		||||
        ,
 | 
			
		||||
        beforeMount: function () {
 | 
			
		||||
            console.log('3.0 beforeMount', this.msg);
 | 
			
		||||
        }
 | 
			
		||||
        ,
 | 
			
		||||
        mounted: function () {
 | 
			
		||||
            console.log('4.0 mounted', this.msg);
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
</html>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
打印结果:
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,56 +0,0 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Vue 2.0的生命周期函数
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
```html
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="en">
 | 
			
		||||
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset="UTF-8">
 | 
			
		||||
    <title>Title</title>
 | 
			
		||||
    <script src="vue2.5.16.js"></script>
 | 
			
		||||
</head>
 | 
			
		||||
 | 
			
		||||
<body>
 | 
			
		||||
    <!--这个div区域就是MVVM中的 View-->
 | 
			
		||||
    <div id="app">
 | 
			
		||||
    </div>
 | 
			
		||||
</body>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
    new Vue({
 | 
			
		||||
        el: '#app',
 | 
			
		||||
        data: {
 | 
			
		||||
            msg: 'hello vuejs'
 | 
			
		||||
        },
 | 
			
		||||
        beforeCreate: function () {
 | 
			
		||||
            console.log('1.0 beforeCreate', this.msg);
 | 
			
		||||
        }
 | 
			
		||||
        ,
 | 
			
		||||
        created: function () {
 | 
			
		||||
            console.log('2.0 created', this.msg);
 | 
			
		||||
        }
 | 
			
		||||
        ,
 | 
			
		||||
        beforeMount: function () {
 | 
			
		||||
            console.log('3.0 beforeMount', this.msg);
 | 
			
		||||
        }
 | 
			
		||||
        ,
 | 
			
		||||
        mounted: function () {
 | 
			
		||||
            console.log('4.0 mounted', this.msg);
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
</html>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
打印结果:
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user