Vue.js实例

Vue.js实例

要启动Vue应用程序,必须使用Vue函数创建一个新的Vue实例。每当我们创建一个新的Vue项目时,Vue实例会默认激活在main.js文件中,它也被称为根Vue实例。

语法

var vm = new Vue({  
  // options  
})  

Vue的应用程序设计灵感来自MVVM模式。作为惯例,我们必须使用变量vm(称为ViewModel缩写)来引用Vue实例。当你创建一个Vue实例时,必须传入一个选项对象。在本文中,您将学习如何使用这些选项来创建所需的行为。

一个Vue应用程序包含一个使用new Vue创建的根Vue实例,它按照嵌套和可重用组件的树形结构组织。例如,如果你创建一个待办事项应用程序,那么它的组件树可能如下图所示:

Vue.js实例

注:所有Vue组件也都是Vue实例。

我们通过一个例子来看看Vue构造函数的一些组成部分。

index.html文件:

<html>  
    <head>  
        <link rel="stylesheet" href="index.css">  
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  
    </head>  
    <body>         
<div id = "app">  
         <h1>Firstname : {{firstname}}</h1>  
         <h1>Lastname : {{lastname}}</h1>  
         <h1>{{mydetails()}}</h1>  
      </div>  
        <script src="index.js"></script>  
    </body>  
</html>

index.js文件:

var  vm = new Vue({  
   el: '#app',  
   data: {  
      firstname : "Albert",  
      lastname : "Pinto",  
      address : "Las Vegas"  
   },  
   methods: {  
      mydetails : function() {  
         return "I am "+this.firstname +" "+ this.lastname +" from "+ this.address;  
      }  
   }  
})  

让我们用一个简单的CSS文件,使输出更具吸引力。

index.css文件:

html, body {  
    margin: 5px;  
    padding: 0;  
}  

程序执行后,您将看到以下输出结果:

Output结果:

Firstname : Albert
Lastname : Pinto
I am Albert Pinto from Las Vegas

Vue.js实例

例子解释

在上面的例子中,你可以看到我们使用了一个名为el的参数。这个“el”参数用于携带DOM元素的id。在上面的例子中,我们有id#app,它是Index.html文件中出现的div元素的id。

<div id = "app"></div>  

现在,我们上面程序的逻辑将只影响该元素内的所有内容。

在定义id之后,我们定义了data对象。在data对象中,我们定义了一些值,例如firstname和lastname。这也定义在<div>元素中。例如,

<div id = "app">  
   <h1>Firstname : {{firstname}}</h1>  
   <h1>Lastname : {{lastname}}</h1>  
</div>   

这里,Firstname : {{firstname}}值指定了存储在data对象中的名字。当你执行程序时,它会在插值中被替换,即{{}},并用数据对象中分配的值,即Albert。

在姓氏中也是一样的,因为Lastname: {{lastname}}值指定了存储在data对象中的姓氏。当你执行程序时,它会在插值中被替换,即{{}},并用数据对象中分配的值,即Pinto。

在定义数据对象之后,我们有一些方法,我们定义了一个名为”mydetails”的函数并返回值。这也定义在<div>元素中:

<h1>{{mydetails()}}</h1>  

因此,你可以看到mydetails函数在{{}}中被调用。您可以看到在Vue实例中返回的值被打印在{{}}内部。## Vue实例的生命周期钩子函数

每个Vue实例都要经历一系列的初始化步骤。当你创建一个实例时,它需要设置数据观察、编译模板、将实例挂载到DOM上以及在数据更改时更新DOM。这个过程被称为Vue实例的生命周期。

Vue实例的生命周期图示

Vue.js实例

Vue实例的生命周期钩子函数的解释

以下是Vue实例经历的所有事件或钩子的列表。Vue.js实例生命周期有8个钩子:

  1. Before create钩子
  2. Created钩子
  3. Before mount钩子
  4. Mounted钩子
  5. Before update钩子
  6. Updated钩子
  7. Before destroy钩子
  8. Destroyed钩子

beforeCreate()钩子: beforeCreate()钩子是创建过程中发生的第一个事件或钩子。它使开发者能够在组件添加到DOM之前执行某些操作。我们无法在此事件中访问DOM。在这个钩子中,数据仍然不是响应式的,组件生命周期内发生的事件还没有被设置好。

created()钩子: created()钩子用于在创建实例后运行代码。它使您能够访问响应式数据,但模板和虚拟DOM的挂载或渲染还没有完成。在这个钩子中,事件是活动的,并且可以访问响应式数据,虽然模板还没有被挂载或渲染。

beforeMount()钩子: beforeMount()钩子用于在初始呈现之前执行,并在已编译模板或渲染函数之后执行。它在模板被编译并被Vue更新虚拟DOM后被调用。这是不常用的事件,大多数情况下不需要使用此事件。

mounted()钩子: mounted()钩子是最常用的事件或钩子。这个钩子使你完全可以访问响应式组件、模板和呈现的DOM。在这个钩子内,你可以完全访问响应式组件、模板和渲染的DOM。

beforeUpdate()钩子: beforeUpdate()钩子在组件数据更改和更新周期开始之前执行。它在DOM被修补和重新呈现之前运行。

updated()钩子: updated()钩子在组件数据更改和DOM重新渲染之后执行。如果您需要在属性更改后访问DOM,这是最好的地方。

beforeDestroy()钩子: beforeDestroy()钩子用于在拆除实例之前执行。这是Vue实例生命周期的倒数第二步,如果需要,是清理事件或响应式订阅的正确位置。

destroyed()钩子: destroyed()钩子是Vue.js实例生命周期的最后一步,用于执行任何最后的清理。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程