Vue 构造函数、生命周期与数据双向绑定

Vue 构造函数、生命周期与数据双向绑定

Vue是一个响应式的、渐进式的JavaScript框架,它在设计上采用MVVM模式,将视图与数据两部分分离。下面就是一个简单的Vue实例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
    {
  { message }}
</div>
<script>
    var app=new Vue({
    
        el:"#app",
        data:{
    
            message:"Hello Vue!"
        }
    })
</script>
</body>
</html>

可以打开浏览器的控制台,改变app.message的值,可以看到页面上的视图显示部分也会相应的更新。

(1)通过Vue构造函数函数来创建Vue实例
 var app = new Vue({
   

 })

变量app就是指这个Vue实例。
在Vue实例中,el选项是必须的,el用于指定一个页面上已存在的DOM元素来挂载Vue实例,例如:

<div id="app"></div>
<script>
    var app=new Vue({
    
        el:"#app",
    })
</script>

之后可以通过app.$el来访问这个被挂载的元素。

  console.log(app.$el)
  //<div id="app"></div>
(2)实例的生命周期钩子函数

每个Vue实例创建时,都会经历一系列初始化的过程,同时也会调用相应的生命周期钩子函数。比较常用的有:

1.created

实例创建完成后调用,在这个阶段完成了数据的观测等,但尚未挂载,$el还不可用。

2.mounted

el挂载到实例上之后调用。

3.beforeDestroyed

实例销毁之前调用。主要解绑一些使用addEventListener监听的事件等。

这些生命周期钩子函数与data类似,也可以写入Vue实例内,并且生命周期钩子函数内的this指向的是调用它的Vue实例。

 var app=new Vue({
   
        el:"#app",
        data:{
   
            a:"Hello Vue!"
        },
        created:function(){
   
            console.log(this.a);
            //Hello Vue!
        },
        mounted:function () {
   
            console.log(this.$el);
            //<div id="app">
            // Hello Vue!
            // </div>
        }
    });

不要在选项属性或回调上使用箭头函数,比如 created: () => console.log(this.a)。

ES6中提到:在箭头函数中没有自己的this对象,导致内部的this就是外层代码的this。
所以,个人理解在选项属性或回调上使用箭头函数,此时的this指向的是全局属性:

   var app=new Vue({
   
        el:"#app",
        data:{
   
            a:"Hello Vue!"
        },
        created:()=>{
   
            console.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值