vue(生命周期 数据绑定)

生命周期
Vue.js实例在创建时有一系列的初始化步骤,例如:建立数据观察,编译模板,创建数据绑定等。在此过程中,我们可以通过一些定义好的生命周期钩子函数(hook function)来运行业务逻辑。钩子函数就是系统事件所触发的回调函数。
生命周期钩子有:
-beforeCreate:在实例开始初始化时同步调用。此时的数据观察、事件等都尚未初始化。
-created:在实例创建后调用。此时已完成数据绑定、事件方法,但尚未开始DOM编译,也就是未挂载到文档中。
-beforeMount:挂载到文档中前调用。
-mounted:在编译结束时调用。此时所有指令都已生效,数据变化时可以触发DOM更新。
-beforeUpdate:在实例挂载后,再次更新实例时会调用该方法,此时尚未更新DOM。
-updated:在实例挂载后,再次更新实例并更新完DOM结构后调用。
-beforeDestroy:在开始销毁实例时调用,此时的实例仍然有效。
-destroyed:在实例销毁后调用,此时所有的绑定和实例指令都已经解绑,子实例也会被销毁。

数据绑定
Vue.js的核心是一个响应式的数据绑定系统,建立绑定后,DOM将和数据保持同步,这样就无需手动维护DOM,使代码能够更加简洁易懂,提升效率。
一、数据绑定语法
1.文本插值
数据绑定的最基础形式就是用双大括号“{{}}”进行文本插值
在input输入框中我们可以使用v-model指令来实现双向数据绑定,{{}}中的值会与数据对象中的值保持一致。无论何时,绑定的数据对象上的值发生改变,插值处的内容也会更新。
通过v-once指令,可以执行一次性地插值,此时,绑定的数据对象上的值发生改变,插值处的内容不会更新。
注意:使用v-once时,会影响到该节点上所有的数据
2.html
使用v-html指令用于输出html代码
3.绑定表达式
Vue.js提供了完全的JavaScript表达式的支持

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src = "vue.js"></script>
    <style>
        .p1{
            background-color: orange;
        }
    </style>
</head>
<body>
    <div id="app">
        <p>{{message}}</p>
        <input type="text" v-model = "message">
    </div>
    <script>
        var vm = new Vue({
            el:"#app",
            data:{
                message:"大禹学院"
            },
            beforeCreate:function(){
                console.log("beforeCreate");
                console.log(this.$data);  //vm实例中data属性
                console.log(this.$el);    //el属性
            },
            created:function(){
                console.log("created");
                console.log(this.$data.message);
                console.log(this.$el);
            },
            beforeMount:function(){
                console.log("beforeMount");
                console.log(this.$data.message);
                console.log(this.$el);
            },
            mounted:function(){
                console.log("mounted");
                console.log(this.$data.message);
                console.log(this.$el);
                this.$destroy(); //销毁实例
            },
            beforeUpdate:function(){
                alert("beforeUpdate");
                console.log(this.$data.message);
                console.log(this.$el);
            },
            updated:function(){
                console.log("updated");
            },
            beforeDestroy:function(){
                console.log("beforeDestroy");
            },
            destroyed:function(){
                console.log("destroyed");
            }
        })
    </script>
    <div id="app1">
        {{msg}}
        <p v-once>{{msg}}</p>
        <input type="text" v-model = "msg">
        <div v-html = "html"></div>
        {{5 + 5}} <br>
        {{msg+ "aaaaaa"}} <br>
        {{ ok?"yes":"no" }} <br>
        <!-- {{ var a = 0 }} 这里会报错,因为var a = 0不是表达式 -->
        <!-- {{ if(2>1) {console.log("123")} }}  这里也不是表达式-->
        <p v-bind:class = "'p'+ classNum">aaaa</p>
    </div>
    <script>
        var vm1 = new Vue({
            el:"#app1",
            data:{
                msg:"这是一段文本",
                html:"<p>这是html,<b>HTML</b></p>",
                ok:true,
                classNum:1
            }
        })
    </script>
</body>
</html>
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值