组件在 vue开发中是必不可少的一环,用好组件这把屠龙刀,就能解决不少问题。
组件是什么
官方的定义:
官方的定义已经非常简明了,组件就是一个实例。
如何使用组件
在具体编写组件实例代码前,我们先来如下几个约定:
约束不多,但最后两个需要牢记在心。
基于单文件组件的前提下,一个组件的基本构造如下:
<template> <div> <!-- 页面内容 --> </div> </template> <script> export default { // 组件的逻辑,数据部分 } </script> <style> /** 样式定义 **/ </style>
一个单文件组件由三个部分组成:
这三部分会在接下来的章节中一一实践,在本篇中并不会给出具体的实例代码。 本篇更侧重于讲清楚在写组件之前应该要注意的地方。
组件的命名
在这里向跑题的一点是:
命名不仅仅是为了自己维护代码,更多的是为了团队、协作开发以及交流。良好的命名会让你的代码更具可读性,而良好的可读性会让你的代码更具可维护性。综上,希望童鞋们能认真命名,避免在项目中产出类似的命名:
var x = getSomething(y); var somethingA = getSomethingB(); ...
在这里,vue官方是强烈建议遵循 W3C规范去为组件命名的:
当然你也可以使用Pascal命名:
但是在使用组件时,都是使用的 W3C规范。假设现在你有一个名称为 HelloWorld的组件,那么如何在其他组件中使用:
<hello-world></hello-world>
建议在命名时考虑以下因素:
在同一个项目中,尽可能保持统一风格
组件的注册
在另一个组件中如果需要使用其它自定义组件,那首先是需要将组件注册。
而注册分为:
局部注册
局部注册的用法:
<template> <div> <!-- 第三步: 在页面中使用 --> <hello-world></hello-world> </div> </template> <script> // 第一步:引入组件 import HelloWorld from 'your/component/path' export default { // 第二步:在当前组件注册此组件,注册之后才可以在页面中使用 components: [ HelloWorld ] } </script>
上图我们可以看到,在单文件组件中局部注册的使用步骤:
全局注册
如果这个 HelloWorld组件是经常要用的一个 UI组件怎么办,如果使用局部注册那意味着每个组件中都将存在第一步和第二步的重复代码。
看见重复代码,我们应该形成一种想要干掉它的本能。因为重复代码属于项目中的坏味道,会让项目的整体质量下降,并且直接影响项目的可维护性和可扩展性。
想想,当这个项目非常庞大,庞大到这个基础组件已经被成百上千个组件引用了,哪天你要改这个组件的文件名或者移动路径时,将是一场灾难。
因此,在 vue中提供了全局注册的办法。只需注册一次,剩余组件中第一步和第二步的代码就可以直接删掉,因为全局注册之后可以直接在视图中使用。
// main.js 入口文件,在创建根实例之前将其注册 import HelloWorld from 'your/component/path' Vue.component('HelloWorld', HelloWorld) new Vue({ ... })
但是这种手动全局注册单个组件也存在一个问题:
这里童鞋们可以思考思考如何在 vue中实现自动全局注册组件。
写在后面
组件系统所包含的内容是相当丰富的,三言两语很难说完整,因此这里只提组件最基础的使用和注册以及在实践中会遇到的问题。
下一篇将会详细的说明子组件及在其上进行数据传递的相关知识,同样,也是以理论为主。也是作为基础篇的最后一篇~
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。
本文向大家介绍深入浅析Vue组件开发,包括了深入浅析Vue组件开发的使用技巧和注意事项,需要的朋友参考一下 前言 这里讲的主要是想谈谈基于Vue的一个组件开发。不得不说的一点就是,在实际的Vue项目中,页面中每一个小块都是由一个个组件(.vue文件)组成,经过抽离后,然后再合并一起组成一个页面。由于上家公司我负责多的是可视化这一块的开发,这边我也将带着大家进行一个Vue项目中的可视化组件的开发,这
本文向大家介绍深入浅析vue组件间事件传递,包括了深入浅析vue组件间事件传递的使用技巧和注意事项,需要的朋友参考一下 由于新工作需要用vue,所以最近接触最多的也是vue,因为之前一直在用react,所以对于vue上手还是很快的。 我也尽量找一些他们两个的异同点,除了多了一些辅助用的方法以外,最大的不同应该是对于组件间的通信,不仅有props,还有一种事件监听,也是可以通过组件间传递的。 但是,
本书从不同的视角介绍了 Node 内在的特点和结构。由首章Node 介绍为索引,涉及Node 的各个方面,主要内容包含模块机制的揭示、异步I/O 实现原理的展现、异步编程的探讨、内存控制的介绍、二进制数据。
Django简介 Django是一个高级的Python Web开发框架,它的目标是使得开发复杂的、数据库驱动的网站变得更加简单。 由于Django最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。所以,我们可以发现在使用Django的很多网站里,都是用于作为CMS(内容管理系统)来使用的。使用Django的一些比较知名的网站如下图所示: 使用Django的网站 Django是一
本文向大家介绍深入浅析Bootstrap列表组组件,包括了深入浅析Bootstrap列表组组件的使用技巧和注意事项,需要的朋友参考一下 Bootstrap,来自 Twitter,是目前最受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。 列表组是灵活又强大的组件,不仅能用于显示一组简单的元素,还能用于复杂的定制的内容。
当我学会如何使用Doker来发布一个容器,以及学会如何使用docker-compose来发布和管理服务时,我很惊讶Docker容器真的是一个好东西!在研究分布式系统、微服务框架时,Docker确实是一个很好的帮手。 我们通过Docker能够在单主机上模拟分布式集群环境,当然你的主机在CPU/内存/硬盘等系统资源的性能如果能够尽可能高的话,你会感到你的学习和研究过程是多么的流畅,让人心旷神怡!