Vue.js 组件

Vue.js 组件

Vue.js 组件是 Vue.js 的最重要的功能之一,用于创建可在 HTML 中重复使用的自定义元素。组件是具有名称的可重用的 Vue.js 实例。我们可以在根 Vue.js 实例中将一个组件用作自定义元素。

以下是创建组件的语法。

语法:

Vue.component('组件的名称',{ // 选项});

让我们创建一个组件来更好地了解如何使用 Vue.js。

请参阅以下示例:

index.html 文件:

<html>
   <head>
      <title>Vue.js Component</title>
      <link rel="stylesheet" href="index.css">
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body>
      <div id = "component_test1">
         <testcomponent></testcomponent>
      </div>
      <div id = "component_test2">
         <testcomponent></testcomponent>
      </div>
      <script src="index.js"></script>
   </body>
</html>

index.js 文件:

Vue.component('testcomponent',{
   template : '<div><h1>This is a component example</h1></div>'
});
var vm = new Vue({
   el: '#component_test1'
});
var vm1 = new Vue({
   el: '#component_test2'
});

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

index.css 文件:

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

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

输出:

This is a component example
This is a component example

Vue.js 组件

示例解释

在上面的示例中,我们在 index.html 文件 中创建了两个带有 id 为 component_test1component_test2 的 div。一旦创建了一个组件,组件的名称就会成为自定义元素,我们可以在创建的 Vue 实例元素中使用此自定义元素,即在具有 id 为 component_test1 和 component_test2 的 div 内部。在此示例中,我们使用 test component 作为组件的名称,并在 div 中使用相同的名称作为自定义元素。

<div id = "component_test1">
   <testcomponent></testcomponent>
</div>
<div id = "component_test2">
   <testcomponent></testcomponent>
</div>

index.js 文件 中,我们创建了两个具有相应 div 标识符的 Vue.js 实例。

var vm = new Vue({
   el: '#component_test1'
});
var vm1 = new Vue({
   el: '#component_test2'

我们创建了一个通用组件,以与两个视图实例一起使用。

Vue.component('testcomponent',{
   template : '<div><h1>This is a component example</h1></div>' 

组件的局部注册

我们可以直接将组件作为 Vue.js 实例的一部分,并在 index.js 文件 中使用以下代码。此方法称为局部注册。在这里,组件将成为仅创建的 vue 实例的一部分。

var vm = new Vue({
   el: '#component_test1',
   components:{
      'testcomponent': {
        template : '<div><h1>This is a component example</h1></div>' 
      }
   }
});

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

输出:

Vue.js 组件

Vue.js 组件更多选项

我们可以向 Vue.js 组件添加一些更多选项,例如数据和方法。这与我们已经将数据和方法添加到 Vue.js 实例类似。请参见以下示例:

Index.html 文件:

<html>
   <head>
      <title>Vue.js Component</title>
      <link rel="stylesheet" href="index.css">
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body>
      <div id = "component_test1">
         <testcomponent></testcomponent>
      </div>
      <div id = "component_test2">
         <testcomponent></testcomponent>
      </div>
      <script src="index.js"></script>
   </body>
</html>

Index.js 文件:

Vue.component('testcomponent',{
   template : '<div v-on:mouseover = "changename()" v-on:mouseout = "originalname();"><h1>This Custom Component is created by <span id = "name">{{name}}</span></h1></div>',
   data: function() {
      return {
         name : "Panda"
      }
   },
   methods:{
      changename : function() {
         this.name = "Alex";
      },
      originalname: function() {
         this.name = "Panda";
      }
   }
});
var vm = new Vue({
   el: '#component_test1'
});
var vm1 = new Vue({
   el: '#component_test2'
});

在上面的 Index.js 文件中,我们添加了一个数据,形式为返回对象的函数。该对象具有一个名为 name 的属性,该属性已赋值为“Panda”。请参见以下示例中使用的模板。

template : '<div v-on:mouseover = "changename()" v-on:mouseout = "originalname();"><h1>This Custom Component is created by <span id = "name">{{name}}</span></h1></div>',
   data: function() {
      return {
         name : "Panda"
      }

在这里,我们在组件中将数据用作函数,并且我们的使用方式与直接 Vue 实例的方式相同。在这里,我们使用了两个方法,changenameoriginalname。在 changename 中,我们正在更改 name 属性,在 originalname 中,我们正在将其重置回原始名称。

我们还在 div 上添加了两个事件,mouseovermouseout。在这里,mouseover 事件用于调用 changename 方法,mouseout 事件用于调用 originalname 方法。

现在,执行上述程序以查看输出。在程序执行之后,您将看到以下输出:

输出:

Vue.js 组件

您可以看到输出显示了我们在 Index.js 文件的数据属性中设置的分配名称“Panda”。我们还在 div 上分配了一个 mouseover 和一个 mouseout 事件。因此,在 mouseover 上,您将看到组件的名称被更改为 Alex,在 mouseout 时,它将保持与 Panda 相同。

Vue.js 组件

动态组件是指在构建时未定义在应用程序中的组件。我们不在任何Vue.js模板中定义它。相反,动态组件在运行时实例化并放置在应用程序中。在Vue.js中,使用关键字<component></component>来创建动态组件,并使用属性进行绑定。让我们通过示例来更清楚地理解它。

Index.html文件:

<html>
   <head>
      <title>Vue.js组件</title>
      <link rel="stylesheet" href="index.css">
      <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id="databinding">
         <component v-bind:is="view"></component>
      </div>
      <script type="text/javascript">
         var vm = new Vue({
            el: '#databinding',
            data: {
               view: 'component1'
            },
            components: {
               'component1': {
                  template: '<div><span style="font-size:25;color:Blue;">这是一个动态组件示例</span></div>'
               }
            }
         });
      </script>
      <script src="index.js"></script>
   </body>
</html>

Index.js文件:

var vm = new Vue({
   el: '#databinding',
   data: {
      view: 'component1'
   },
   components: {
      'component1': {
         template: '<div><span style="font-size:25;color:Blue;">这是一个动态组件示例</span></div>'
      }
   }
});

让我们使用一个简单的CSS文件来使输出更加吸引人。

Index.css文件:

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

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

输出:

这是一个动态组件示例

Vue.js 组件

示例解释

在上面的示例中,您可以看到使用以下语法创建动态组件。

<component v-bind:is="view"></component>

这里,它有 v-bind:is =”view”,并分配了一个值view。在Vue实例中定义View如下所示。

var vm = new Vue({
   el: '#databinding',
   data: {
      view: 'component1'
   },
   components: {
      'component1': {
         template: '<div><span style="font-size:25;color:red;">动态组件</span></div>'
      }
   }
});

运行后,您会看到模板在浏览器中显示为“This is a Dynamic Component Example”。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程