一、组件名

  写组件之前你要明确你的目的,想要做一个什么样的组件,我们在注册一个组件的时候,需要给组件一个名字,对于命名,尽可能明确,使用 kebab-case (短横线分隔命名) 或 PascalCase (首字母大写命名)。

  使用 kebab-case (短横线分隔命名) 定义一个组件时,我们在引用这个自定义元素时其格式 :

Vue.component('my-component-name', { /* ... */ })
<my-component-name>

  使用 PascalCase (首字母大写命名) 定义一个组件时,我们引用这个自定义元素时,其格式有两种,不过有时这种命名的组件在调用时候,会自动解析成短横线分割命名。

Vue.component('MyComponentName', { /* ... */ })
<my-component-name>
<MyComponentName>

二、全局注册

  组件全局注册后,可以在任何新创建的Vue根实例的模板中使用。

Vue.component('my-component-name', {
// ... 选项 ...
})

三、局部注册

  全局注册往往是不够理想的。比如,如果你使用一个像 webpack 这样的构建系统,全局注册所有的组件意味着即便你已经不再使用一个组件了,它仍然会被包含在你最终的构建结果中。这造成了用户下载的 JavaScript 的无谓的增加。

四、在模板系统中局部注册

  目前学习vue都是用webpack构建的,对于一个网址各组件应该怎么构造分配还是不够熟悉。

我们在不同组件中复用其他组件,需要在局部注册之前导入每个你想使用的组件。

例如,在一个假设的 ComponentB.js 或 ComponentB.vue 文件中,我们需要使用ComponentA和ComponentC,那么我们需要import,同时在 components 选项中定义你想要使用的组件。

import ComponentA from './ComponentA'
import ComponentC from './ComponentC' export default {
components: {
ComponentA,
ComponentC
},
// ...
}

五、基础组件的自动化全局注册(还未实际应用过)

之前写的父子组件都不是基础通用的组件,如果我设计了很多button类,input类的只包含这种单个元素,在不同组件里频繁的使用,那么就会造成有一些组件中会有很多包含基础组件的长列表,会很冗杂。

如果你使用了 webpack (或在内部使用了 webpack 的 Vue CLI 3+),那么就可以使用 require.context 只全局注册这些非常通用的基础组件。

vue之组件注册的更多相关文章

  1. Vue全局组件注册

    通过Vue.component(‘组件名’, {配置对象})注册全局组件 在main.js中注册全局组件 test import Vue from 'vue' import App from './A ...

  2. vue复合组件----注册表单

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. Vue组件深入了解(组件注册和Prop)

    一.组件名 自定义组件的名称强烈推荐遵循W3C规范中的方式:字母全小写且必须包含一个连字符. 二.全局注册和局部注册的区别 全局注册 Vue.component进行注册.全局注册的可以在任何创建的实例 ...

  4. vue学习—组件的定义注册

    组件的定义注册 效果: 方法一: <div id="box"> <v-header></v-header> <hr /> <b ...

  5. Vue.js学习-组件注册与使用

    Vue.js学习文档 地址:https://cn.vuejs.org/v2/guide/ 关于自定义组件注册: 建议将<script></script>放在body标签之后 H ...

  6. vue组件注册(极客时间Vue视频笔记)

    vue组件注册 组件是为了方便代码复用,只需引入组件即可在不同的地方使用想同的功能代码 <body> <div class="app"> <todo- ...

  7. 循序渐进VUE+Element 前端应用开发(22)--- 简化main.js处理代码,抽取过滤器、全局界面函数、组件注册等处理逻辑到不同的文件中

    在我们开发代码的时候,一般都喜欢进行一定程度的重构,以达到简化代码.关注点分离.提高代码可读性等等方面的考虑,本篇随笔介绍在VUE+Element 前端应用开发过程中,实现简化main.js处理代码, ...

  8. 04 . Vue组件注册,数据交互,调试工具及组件插槽介绍及使用

    vue组件 组件(Component)是 Vue.js 最强大的功能之一. 组件可以扩展 HTML 元素,封装可重用的代码. 组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的 ...

  9. 04 . Vue组件注册,组件间数据交互,调试工具及组件插槽介绍及使用

    vue组件 组件(Component)是 Vue.js 最强大的功能之一. 组件可以扩展 HTML 元素,封装可重用的代码. 组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的 ...

随机推荐

  1. Java常见对象Object类中的个别方法

    Java常见对象Object类 public int hashCode() : 返回该对象的哈希码值. 注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值.你可以理解成 ...

  2. 洛谷 P1032 字串变换 (BFS)

    题目传送门 我即使是死了,钉在棺材里了,也要在墓里,用这腐朽的声带喊出 STL大法好 这题最麻烦的其实是处理字符串,真正的搜索部分我个人认为也就只有橙题或黄题的难度.而处理字符串,正如前面所说,STL ...

  3. oracle count 百万级 分页查询记要总数、总条数优化

    oracle count 百万级 分页查询记录总数.总条数优化 oracle count 百万级 查询记录总数.总条数优化 最近做一个项目时,做分页时,发现分页查询速度很慢,分页我做的是两次查询,一次 ...

  4. SVN中检出(check out) 跟导出(export) 的区别

    SVN中检出(check out) 和导出(export) 的区别?观点一:SVN是常用的一种常见的版本控制软件.SVN中检出(check   SVN中检出(check out) 和导出(export ...

  5. heartbeat安装配置

    一.环境 node01 192.168.127.101 心跳:192.168.42.101 node02 192.168.127.102 心跳:192.168.42.102 虚拟ip:192.168. ...

  6. CSS3-媒体类型

    一.媒体类型(Media Type) 1.link方法引入 <link rel="stylesheet" type="text/css" href=&qu ...

  7. asyn_fifo

    //Module Name:afifo_ctrl //Description:parameterized afifo module afifo_ctrl( clk_push, rst_push_n, ...

  8. Day06for循环和字符串的内置方法

    Day06 1.for循环(迭代器循环) while循环 条件循环,循环是否结束取决于条件的真假 for循环,迭代器循环,多用于循环取值,循环是否结束取决于被循环数据的元素个数 2.range(1,5 ...

  9. LeetCode(102) Binary Tree Level Order Traversal

    题目 Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to rig ...

  10. hdu 5437

    Alisha’s Party Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...