Vue 元素挂载、方法、生命周期钩子函数

6 篇文章 0 订阅

目录

一、元素挂载

 二、vue的方法

三、生命周期钩子函数


 

一、元素挂载

        在Vue.的构造函数中有一个el选项,该选项的作用是为了Vue实例提供挂载元素。

        如下在div中定义了一个id "element",在script引入vue.js后创建vue实例,vue实例中的el即挂载元素,需要与div中的id对应。data选项定义数据,在div中使用双括号{{}}绑定data中的数据。

<div id="element">
    <h3>{{text}}</h3>
</div>
<script src="http://60.205.187.0/vue/vue.js"></script>
<script type="text/javascript">
    var demo=new Vue({
        el:'#element',
        data:{
            text:'Hello World'
        }
    })
</script>

元素的挂载,如果div中有多个相同的id,vue实例的元素的挂载匹配为从上往下第一个id,有效范围为第一个id下的所有深度


 二、vue的方法

        在Vue实例中,通过methods选项可以定义方法,一样通过双括号进行绑定。实例如下:

<div id="element">
    <h3>{{demo()}}</h3>
</div>

<script src="http://60.205.187.0/vue/vue.js"></script>
<script type="text/javascript">
    var demo=new Vue({
        el:'#element',
        data:{
            text:'Hello World'
        },
        methods:{
            demo:function(){
                return 'Hello World'+this.text;
            }
        }
    })
</script>


三、生命周期钩子函数

        每个vue在创建的时候都会有一系列的初始化步骤。例如,创建数据绑定、编译模板、将实例挂载到DOM并在数据变化时触发DOM更新、销毁实例等,在这个过程中会运行一些叫做生命周期钩子的函数。Vue实例中的钩子函数如下:

        创建期间的四个声明周期函数

  1. beforeCreate() Vue实例完全被创建出来之前,会执行它,当beforeCreate,data和methods数据还未初始化
  2. created() 实例创建之后调用,data和methods中的数据已经被初始化
  3. beforeMount() 实例对象挂载之前模板已经在内存中编辑完成,但还没有渲染到页面
  4. mounted() 实例对象挂载之后将内存中编译好的模板替换到浏览器页面中,用户可以看到渲染好的页面了,这时候,Vue组件已经创建完毕

        运行和销毁期间一共有两个声明周期函数:

  1. beforeUpdate() 界面还没有被更新,但是数据更新了
  2. updated() 事件执行的时候,界面和data数据保持同步了(最新)

        其它声明周期函数

  1. beforeDestroy() Vue实例已经从运行阶段进入到了销毁阶段,组件中的数据、方法仍然可用
  2. destroyed() Vue实例完全被销毁了,组件中的数据、方法都不可用了

<div id="element">{{text}}</div>
<script src="http://60.205.187.0/vue/vue.js"></script>
<script type="text/javascript">
    var demo = new Vue({
        el: '#element',
        data: {
            text: 'Hello world'
        },
        beforeCreate: function () {
            console.log('beforeCreate'+' —— el:'+this.$el+' —— data: '+this.text)
        },
        created: function () {
            console.log('created'+' —— el:'+this.$el+' —— data: '+this.text)
        },
        beforeMount: function () {
            console.log('beforeMount'+' —— el:'+this.$el+' —— data: '+this.text)
        },
        mounted: function () {
            console.log('mounted'+' —— el:'+this.$el+' —— data: '+this.text)
            this.text='Hello World';
        },
        beforeUpdate: function () {
            console.log('beforeUpdate'+' —— el:'+this.$el+' —— data: '+this.text)
        },
        updated: function () {
            console.log('updated'+' —— el:'+this.$el+' —— data: '+this.text)
            this.$destroy();
        },
        beforeDestroy: function () {
            console.log('beforeDestroy'+' —— el:'+this.$el+' —— data: '+this.text)
        },
        destroyed: function () {
            console.log('destroyed'+' —— el:'+this.$el+' —— data: '+this.text)
        }
    })
</script>

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 中,生命周期钩子函数是一些特定的方法,它们在组件实例的生命周期中自动执行,可以让你在特定阶段执行自定义代码。在 Vue2 中,一共有 8 个生命周期钩子函数,分别是: 1. beforeCreate:在实例被创建之前执行,此时组件的数据、方法等都还未初始化,无法访问。 2. created:在实例创建完成后执行,此时组件的数据已经初始化完成,但 DOM 元素还未生成。 3. beforeMount:在挂载之前执行,此时 DOM 元素还未生成。 4. mounted:在挂载完成后执行,此时 DOM 元素已经生成,可以访问到 DOM 元素。 5. beforeUpdate:在更新之前执行,此时数据已经更新,但 DOM 元素还未重新渲染。 6. updated:在更新完成后执行,此时数据已经更新,DOM 元素也已经重新渲染。 7. beforeDestroy:在销毁之前执行,此时组件实例还存在,可以进行善后工作。 8. destroyed:在销毁之后执行,此时组件实例已经被销毁,无法访问。 在 Vue3 中,由于引入了 Composition API,生命周期钩子函数发生了一些变化。Vue3 提供了一个新的 API `onBeforeMount` 和 `onMounted` 取代了 Vue2 中的 `beforeMount` 和 `mounted`;同时提供了 `onBeforeUpdate` 和 `onUpdated` 取代了 Vue2 中的 `beforeUpdate` 和 `updated`;还提供了 `onBeforeUnmount` 和 `onUnmounted` 取代了 Vue2 中的 `beforeDestroy` 和 `destroyed`。除此之外,Vue3 还提供了三个新的生命周期钩子函数: 1. onBeforeUnmount:在卸载组件之前执行。 2. onRenderTracked:在组件中有依赖项被追踪时执行。 3. onRenderTriggered:在组件中有追踪的依赖项被触发更新时执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值