4.Vue实例
4.1.建立Vue实例
每一个 Vue 应用都是经过用 Vue
函数建立一个新的 Vue 实例开始的:javascript
var vm = new Vue({ // 选项 })
在构造函数中传入一个对象,而且在对象中声明各类Vue须要的数据和方法,包括:html
- el
- data
- methods
等等vue
接下来咱们一 一介绍。java
4.2.模板或元素
每一个Vue实例都须要关联一段Html模板,Vue会基于此模板进行视图渲染。jquery
咱们能够经过el属性来指定。web
例如一段html模板:app
<div id="app"> </div>
而后建立Vue实例,关联这个divdom
var vm = new Vue({ el:"#app" })
这样,Vue就能够基于id为app
的div元素做为模板进行渲染了。在这个div范围之外的部分是没法使用vue特性的。svg
4.3.数据
当Vue实例被建立时,它会尝试获取在data中定义的全部属性,用于视图的渲染,而且监视data中的属性变化,当data发生改变,全部相关的视图都将从新渲染,这就是“响应式“系统。函数
html:
<div id="app"> <input type="text" v-model="name"/> </div>
js:
var vm = new Vue({ el:"#app", data:{ name:"刘德华" } })
- name的变化会影响到
input
的值 - input中输入的值,也会致使vm中的name发生改变
4.4.方法
Vue实例中除了能够定义data属性,也能够定义方法,而且在Vue实例的做用范围内使用。
html:
<div id="app"> { {num}} <button v-on:click="add">加</button> </div>
js:
var vm = new Vue({ el:"#app", data:{ num: 0 }, methods:{ add:function(){ // this表明的当前vue实例 this.num++; } } })
4.5.生命周期钩子
4.5.1.生命周期
每一个 Vue 实例在被建立时都要通过一系列的初始化过程 :建立实例,装载模板,渲染模板等等。Vue为生命周期中的每一个状态都设置了钩子函数(监听函数)。每当Vue实例处于不一样的生命周期时,对应的函数就会被触发调用。
生命周期:
4.5.2.钩子函数
beforeCreated:咱们在用Vue时都要进行实例化,所以,该函数就是在Vue实例化是调用,也能够将他理解为初始化函数比较方便一点,在Vue1.0时,这个函数的名字就是init。
created:在建立实例以后进行调用。
beforeMount:页面加载完成,没有渲染。如:此时页面仍是{ {name}}
mounted:咱们能够将他理解为原生js中的window.οnlοad=function({.,.}),或许你们也在用jquery,因此也能够理解为jquery中的$(document).ready(function(){….}),他的功能就是:在dom文档渲染完毕以后将要执行的函数,该函数在Vue1.0版本中名字为compiled。 此时页面中的{ {name}}已被渲染成峰哥
beforeDestroy:该函数将在销毁实例前进行调用 。
destroyed:改函数将在销毁实例时进行调用。
beforeUpdate:组件更新以前。
updated:组件更新以后。
例如:created表明在vue实例建立后;
咱们能够在Vue中定义一个created函数,表明这个时期的钩子函数:
// 建立vue实例 var app = new Vue({ el: "#app", // el即element,该vue实例要渲染的页面元素 data: { // 渲染页面须要的数据 name: "峰哥", num: 5 }, methods: { add: function(){ this.num--; } }, created: function () { this.num = 100; } });
结果:
4.5.3.this
咱们能够看下在vue内部的this变量是谁,咱们在created的时候,打印this
methods: { add: function(){ this.num--; console.log(this); } },
控制台的输出:
本文同步分享在 博客“cwl_java”(CSDN)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。