一、局部引入

步骤

1、先将组件写好,放在一个文件中
组件的写法和正常的.vue文件相同,如果需要接收参数,可使用props传值,以封装一个标题组件举例。

以下为项目目录

以下为组件内容

<template><div class="title-small"><ul class="al-cen"><li class="icon"></li><li class="text left-10">{{ content }}</li></ul></div>
</template><script>
export default {name: "",data() {return {};},props: {content: "",//接收参数},components: {},created() {},mounted() {},methods: {},
};
</script>
<style lang="scss" scoped>
.title-small {background-color: rgb(231, 231, 231);padding: 8px 16px;width: 500px;border-radius: 2px;.icon {width: 16px;height: 16px;border-radius: 8px;border: 2px solid rgb(19, 180, 230);}.text {font-size: 16px;}
}
</style>

2、局部引入组件并使用
局部引入可在需要引入的项目中单独引入

import titleSmall from "./form/titleSmall.vue";
components: {titleSmall},

以下为完整代码

<template><div>//直接使用注册的标签即可,content内容为传给组件的值<titleSmall class="top-30" content="标题"></titleSmall></div>
</template><script>
import titleSmall from "./form/titleSmall.vue";//引入组件
import "../style/form.scss";
export default {name: "",data() {return {content: "",bat: "",};},components: {titleSmall},//注册组件created() {},mounted() {},methods: {},
};
</script>
<style lang="scss" scoped>
</style>

至此组件已局部引入并正常使用

二、全局引入

全局引入方法和局部引入类似,组件的写法与局部引入完全一样,仅仅是引入方式有所区别
1、写组件
方法同上
2、引入组件
局部引入组件是在需要使用组件的文件中单独引入,这种方法很常见,在日常使用中大多都是采用局部引入。
但对于某些使用很频繁的组件,如标题这样的可能会所有文件都会使用的组件,这样在每个文件都引入显得很是繁琐,且万一遇到需求改变,修改起来也是异常麻烦,所以全局引入在此时就显得很有必要了。
全局引入的方法也很简单,仅仅是从单文件引入改为在main.js文件中引入即可

import titleSmall from './views/form/titleSmall.vue';//引入组件
Vue.component('title-small',titleSmall)//注册组件

以下为main.js完整内容

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import axios from 'axios'
import './style/public.scss';
import './assets/text/text.css';
import titleSmall from './views/form/titleSmall.vue';
Vue.component('title-small',titleSmall)
Vue.prototype.$axios = axios
Vue.use(ElementUI);
Vue.config.productionTip = falsenew Vue({router,store,render: h => h(App)
}).$mount('#app')

最终实现效果如下

三、总结

在日常使用中应该尽量避免使用全局引入,这会大大增加项目体积,在组件复用性不高的情况下,应该使用局部引入,只有在组件复用性非常高的时候才应该考虑使用全局引入。

vue自定义组件(超详细)相关推荐

  1. Vue如何自定义组件?超详细Vue自定义组件指南!使用自定义组件减少重复造轮子! ∠( °ω°)/ 前端知识

    文章目录 使用意义 基础使用 给组件添加属性 传递事件 自定义组件的v-model 剖析v-model原理 使用示例 插槽 使用意义 有时候一组HTML代码可能会在多出使用(比如页眉页脚).如果我们把 ...

  2. Vue自定义组件并引入

    今天,bug菌为大家带来一期帝王级干货,有关于前端vue的组件教学,深入指引大家在vue中如何创建自定义的组件,并且在vue中引入你自定义的组件: 具有很好的教学价值,希望小伙伴们根据这篇文章可以有所 ...

  3. Vue模仿todo超详细讲解(附源码)

    Vue模仿todo超详细讲解(附源码) 一.todo基本DOM结构 二.todo功能需求分析 1.新增任务 2.点击变成完成状态 3.点击删除 4.双击进入编辑以及修改保存 5.底部的状态筛选 6.l ...

  4. vue自定义组件,插槽,自定义事件

    vue组件套娃 1. vue自定义组件 2. 组件和插槽套娃 3. vue组件通过自定义事件更改vue实例中的数据 1. vue自定义组件 语法 Vue.component('自定义组件名', {pr ...

  5. vue 嵌套表格组件_使用form-create动态生成vue自定义组件和嵌套表单组件

    使用form-create动态生成vue自定义组件和嵌套表单组件 maker.create 通过建立一个虚拟 DOM的方式生成自定义组件 生成 Maker let rule = [ formCreat ...

  6. vue自定义组件是.vue还是html,Vue自定义组件的四种方式示例详解

    四种组件定义方式都存在以下共性(血泪史) 规则: 1.组件只能有一个根标签 2.记住两个词全局和局部 3.组件名称命名中'-小写字母'相当于大写英文字母(hello-com 相当于 helloCom) ...

  7. Vue自定义组件封装及使用Excel

    Vue自定义组件封装及使用Excel 一.js-xlsx 组件安装 二. 创建vue组件 三.使用 四.效果图 一.js-xlsx 组件安装 npm install xlsx --savenpm in ...

  8. Vue自定义组件之时间跨度选择器

    时间跨度选择器 该组件是个时间跨度选择器. 基于 vue自定义组件之选择器 和 Vue自定义组件之日期时间范围选择器 点击选框,下拉列表中有四个选项,点击自定义时间,后边会出现 日期时间范围选择 代码 ...

  9. Vue自定义组件npm上传私服,且从私服下载使用

    Vue自定义组件npm上传私服,yarn私服下载使用 安装镜像源管理工具nrm 发布自定义组件到公司私服 若未下载nrm源管理工具直接使用npm设置私服地址也可以 以下步骤都是基于npm命令 从私服下 ...

  10. Vue自定义组件及组件传值

    vue自定义组件: 1.在src中components中,新建文件,后缀名为.vue组件(首字母建议大写)例如:Weekly.vue 2.Weekly.vue: 3.在app.vue中引用组件: js ...

最新文章

  1. 物理学家解说2012
  2. WebRTC媒体服务器开源项目介绍
  3. Linux下SSH远程连接断开后让程序继续运行解决办法
  4. python网络模块_Python的pyroute2网络模块-阿里云开发者社区
  5. 前端学习(2739):重读vue电商网站49之第三方库使用CDN
  6. java字符串替换空格符_特殊的空格(Java无法替换字符串中的空格)转
  7. android怎么刷新活动,Android 如何刷新当前activity的显示数据?
  8. 《神经网络和深度学习》系列文章五:用简单的网络结构解决手写数字识别
  9. 【Flink】Flink 写入 Clickhouse 大对象直接进入老年代 导致OOM
  10. leetcode力扣49. 字母异位词分组
  11. 存储过程和存储函数和触发器示例
  12. Js时间相关处理函数
  13. 基于php+MySQL电脑外设商城网站 毕业设计-附源码271538
  14. ET框架-02 ET框架-开发环境搭建
  15. 日本被动元件是怎样称霸全球的
  16. PMP笔记 第6章 项目进度管理
  17. Java入门案例:模拟纸牌游戏拖拉机(升级)
  18. numpy对数据集进行shuffle
  19. Spring Cloud 2.2.2 源码之二十九nacos客户端获取配置原理四
  20. (4.2.40)阿里开源路由框架ARouter的源码分析

热门文章

  1. Facebook 发币Libra;苹果召回MBP;Google放弃平板业务;长宁地震物联网成功预警...
  2. C# 画矩形图(更新循环流动)
  3. Jenkins的构建结果通知到飞书群
  4. Leoplayer基于HTTP的FLV播放器
  5. word中的编号显示在导航窗格中
  6. python安装路径怎么找-怎么查看python安装路径
  7. 下列不是python对文件的操作方法的是_Python 文件操作
  8. 新华三校招软件测试,【新华三软件测试工程师面试题目|面试经验】-看准网
  9. 网络安全技术入门-kali linux初体验
  10. Thinkpad 设置指纹启动