【vue五分钟】五分钟让你了解vue组件

简介: 为什么vue就开始在前几年就流行并且实用起来了?这主要的是因为由于vue的一个最强大的功能就是vue的组件,vue的组件到底有什么强大的功能呢?原因有两个,一个是组件的复用性很高;另一个是可以减少重复性的开发。

前言

    为什么vue就开始在前几年就流行并且实用起来了?这主要的是因为由于vue的一个最强大的功能就是vue的组件,vue的组件到底有什么强大的功能呢?原因有两个,一个是组件的复用性很高;另一个是可以减少重复性的开发。

   组件是什么?组件是用基础的元素组成的复杂的、可以重复使用的代码单元,就相当于叠叠乐一样的快件,可以将这些复用的代码封装其起来构成的组件可需要的时候进行调用。

一、全局组件

1、定义

全局组件的语法是:vue.component(‘组件名’,{配置选项});

然后,我们进一步理解一下,组件名应该怎么定义:组件名的定义规则是,使用短横线分隔命名,字母小写并且还需要一个连字符。配置选项对象:创建的配置选项的对象和new Vue创建的配置的实例接收相同的选项对象,这些对象属性里面有:data、computed、methods等等

一个组价可以预定义很多选项,最核心的是一下两个

  • 结构模板template

这个模板声明了数据䄦最终显示给用户的DOM之间的映射关系。但是要注意的是,该结构模板中,只能有一个根节点。

  • 初始数据data

data可以定义组件的初始数据,和newVue的data选项的定义不一样,组件是可以复用的,所以数据要定义成私有的转态,打data定义成一个函数,并且要求返回一个函数对象

2、全局组件调用

说了那么多理论的东西,可能不了解,那我我们上代码。全局组件在全局都是可以调用的,调用的方式跟标签的调用方式是一样的,只需要将标签名改成组件名就可以了。

代码实例:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>组件</title>
</head>
<body>
    <div id="app">
<button-counter></button-counter>
<button-counter></button-counter>
    </div>
    <div id="app1">
        <button-counter></button-counter>
        <button-counter></button-counter>
    </div>
    <script src="http://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
    <script>
Vue.component('button-counter',{
   template:`<button v-on:click="add">您在这里按下了{{count}}次!</button>`,
   data:function(){
    return{
        count:0
    }
   },
   methods:{
    add:function(){
        this.count++
    },
   }
});
var  vml = new Vue({
    el:"#app",
})
var vm2 =new Vue({
    el:"#app1",
})
    </script>
</body>
</html>

运行结果:

2345_image_file_copy_250.jpg

在代码这个中,button-counter已经是全局组件,可以在vm1和vm2挂载使用,在其范围之内都可使用。组件定义后可以进行多从的使用,在vue实例vm1和vm2的挂载范围分别地道用了两次组件,而且组件间数据都是相互独立,不管不按哪一个按钮都是互相不受不影响的。

二、局部组件

1、定义

局部组件的定义是:定义在vue实例上面的,在哪一个实例上面的定义,就在哪个实例所挂载的区域里面进行使用。

 使用的配置项component,一个实例可以进行配置多个组件,多个组件配置在一个对象中。局部组件只有在定义在它的实例挂载的区域内进行使用,而且调用的方法和全局组件调用的方法是如出一辙的。

2、局部组件调用

代码实例:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>组件</title>
</head>
<body>
    <div id="app">
        <!-- 头部,你随意定,你写中文拼音都可以 -->
<top></top>
<!-- 中部 -->
<middle></middle>
<!-- 尾部 -->
<bottom></bottom>
    </div>
    <div id="app1">
        <top></top>
    </div>
    <script src="http://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
    <script>
var  vml = new Vue({
    el:"#app",
    components:{
        "top":{
            template:`<div>
                <h3>头部标题</h3>
                <p>12121212</p>
                </div>`
        },
        "middle":{
            template:`<div>
                <h3>中部题目</h3>
                <p>10086</p>
                </div>`
        }, 
        "bottom":{
            template:`<div>
                <h3>尾部题目</h3>
                <p>欢迎来到丘比特的博客</p>
                <p>QQ:2237814512</p>
                </div>`
        },
    }
})
var vm2 =new Vue({
    el:"#app1",
})
    </script>
</body>
</html>

运行结果:

image.jpeg

  在实例中我们定义了头中尾三个组件,在vm1挂载的#app区域里面可以使用这三个组件 ,但是在#app1不可以使用。我们可以看到vm1挂载的#app区域内调用的三个组件可以显示出来,但是在vm2挂载的#app1区域内调用的top组件没有被渲染,我们打开console可以看到错误,在元素element可以看到被解释的代码。

相关文章
|
20天前
|
缓存 JavaScript 前端开发
vue学习第四章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中计算属性的基本与复杂使用、setter/getter、与methods的对比及与侦听器的总结。如果你觉得有用,请关注我,将持续更新更多优质内容!🎉🎉🎉
34 1
vue学习第四章
|
20天前
|
JavaScript 前端开发
vue学习第九章(v-model)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript与Vue的大一学生,自学前端2年半,正向全栈进发。此篇介绍v-model在不同表单元素中的应用及修饰符的使用,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
28 1
vue学习第九章(v-model)
|
19天前
|
JavaScript 前端开发 开发者
vue学习第十章(组件开发)
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文深入讲解Vue组件的基本使用、全局与局部组件、父子组件通信及数据传递等内容,适合前端开发者学习参考。持续更新中,期待您的关注!🎉🎉🎉
33 1
vue学习第十章(组件开发)
|
25天前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
13天前
|
前端开发 JavaScript 测试技术
Vue3中v-model在处理自定义组件双向数据绑定时,如何避免循环引用?
Web 组件化是一种有效的开发方法,可以提高项目的质量、效率和可维护性。在实际项目中,要结合项目的具体情况,合理应用 Web 组件化的理念和技术,实现项目的成功实施和交付。通过不断地探索和实践,将 Web 组件化的优势充分发挥出来,为前端开发领域的发展做出贡献。
24 8
|
13天前
|
JavaScript
在 Vue 3 中,如何使用 v-model 来处理自定义组件的双向数据绑定?
需要注意的是,在实际开发中,根据具体的业务需求和组件设计,可能需要对上述步骤进行适当的调整和优化,以确保双向数据绑定的正确性和稳定性。同时,深入理解 Vue 3 的响应式机制和组件通信原理,将有助于更好地运用 `v-model` 实现自定义组件的双向数据绑定。
|
25天前
|
存储 缓存 JavaScript
在 Vue 中使用 computed 和 watch 时,性能问题探讨
本文探讨了在 Vue.js 中使用 computed 计算属性和 watch 监听器时可能遇到的性能问题,并提供了优化建议,帮助开发者提高应用性能。
|
25天前
|
存储 缓存 JavaScript
如何在大型 Vue 应用中有效地管理计算属性和侦听器
在大型 Vue 应用中,合理管理计算属性和侦听器是优化性能和维护性的关键。本文介绍了如何通过模块化、状态管理和避免冗余计算等方法,有效提升应用的响应性和可维护性。
|
25天前
|
JavaScript 前端开发 UED
vue学习第二章
欢迎来到我的博客!我是一名自学了2年半前端的大一学生,熟悉JavaScript与Vue,目前正在向全栈方向发展。如果你从我的博客中有所收获,欢迎关注我,我将持续更新更多优质文章。你的支持是我最大的动力!🎉🎉🎉
38 3
|
25天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端2年半,熟悉JavaScript与Vue,正向全栈方向发展。博客内容涵盖Vue基础、列表展示及计数器案例等,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
50 2