1、是什么?

这里主要是简单入门使用一下,复杂高阶的用法笔者暂时还没了解到

Vue重用组件是指可以被多个Vue实例重复使用的组件。这些组件可以包含自定义的状态和事件处理程序,并且可以在整个应用程序中共享。重用组件可以减少代码冗余,提高开发效率,并使代码更加模块化和可维护。

在Vue中,可以使用<component>标签来定义重用组件。

2、怎么玩?

组件页面1:MyButton.vue

友情提示:一般情况下组件都放在Component下

<template>
<div class="button" :class="[type,size]">
<!--标签内的文本动态替代插槽中的内容-->
a
<slot></slot>
b
</div>
</template> <script>
const options = {
name: 'MyButton',
props: ['type', 'size']
} export default options
</script> <style scoped>
.button {
display: inline-block;
text-align: center;
border-radius: 30px;
margin: 5px;
font: bold 12px/25px Arial, sans-serif;
padding: 0 2px;
text-shadow: 1px 1px 1px rgba(255, 255, 255, .22);
box-shadow: 1px 1px 1px rgba(0, 0, 0, .29), inset 1px 1px 1px rgba(255, 255, 255, .44);
transition: all 0.15s ease;
} .button:hover {
box-shadow: 1px 1px 1px rgba(0, 0, 0, .29), inset 1px 1px 2px rgba(0, 0, 0, .5);
} .button:active {
box-shadow: inset 1px 1px 2px rgba(0, 0, 0, .8);
} .primary {
background-color: #1d6ef9;
color: #b5e3f1;
} .danger {
background-color: rgb(196, 50, 50);
color: white;
} .success {
background-color: #a5cd4e;;
color: #3e5706;
} .small {
width: 40px;
height: 20px;
font-size: 10px;
line-height: 20px;
} .middle {
width: 50px;
height: 25px;
font-size: 14px;
line-height: 25px;
} .large {
width: 60px;
height: 30px;
font-size: 18px;
line-height: 30px;
}
</style>

props : 自定义组件属性

slot : 插槽,用户

组件页面2:MyTamplate.vue

<template>
<div>
<header>
<h1>{{ message }}</h1>
</header>
<section>
<p>{{ content }}</p>
</section>
</div>
</template> <script>
const options = {
name: "MyTemplate", // 指定组件名称
data() {
return {
message: 'Hello World',
content: 'This is my content.'
}
}
}
export default options
</script> <style scoped> </style>

使用自定义组件和自定义属性

<template>
<div class="app-container">
<h1>父组件</h1>
<my-button type="primary" size="small">zs</my-button>
<my-button type="danger" size="middle">ls</my-button>
<my-button type="success" size="large">ww</my-button> <my-template></my-template>
</div>
</template> <script>
import MyButton from "@/components/MyButton";
import MyTemplate from "@/components/MyTemplate";
const options = {
components: {
MyButton,
MyTemplate
}
}
export default options
</script> <style scoped> /*scoped : 只影响当前页面*/
</style>

3、效果

Vue重用组件的更多相关文章

  1. vue.js组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然 ...

  2. VUE.JS组件化

    VUE.JS组件化 前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎 ...

  3. 从零开始学 Web 之 Vue.js(六)Vue的组件

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  4. Vue 父组件循环使用refs调用子组件方法出现undefined的问题

    Vue 父组件循环使用refs调用子组件方法出现undefined的问题 1. 背景 最近前端项目遇到一个问题,我在父组件中使用了两个相同的子组件child,分别设置ref为add和update.其中 ...

  5. vue.js组件(component)

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

  6. Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例

    Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例 element ★11612 - 饿了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于Vue和WeUI的组件库 ...

  7. Vue自定义组件以及组件通信的几种方式

    本帖子来源:小贤笔记 功能 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它 ...

  8. vue --》组件的封装 及 参数的传递

    vue组件的定义 ● 组件(Component)是Vue.js最强大的功能之一 ● 组件可以扩展HTML元素,封装可重用代码 ● 在较高层面上,组件是自定义元素,Vue.js的编译器为他添加特殊功能 ...

  9. new Vue() 和 export default {}及Vue页面组件和标签组件说明与比较(非常重要)

    说明与比较:new Vue() 和 export default {} (1)vue就是一个构造函数 (2)vue标签组件:是HTML标签的扩展https://www.cnblogs.com/w-wa ...

  10. Vue专题-组件

    vue.js既然是框架,那就不能只是简单的完成数据模板引擎的任务,它还提供了页面布局的功能.本文详细介绍使用vue.js进行页面布局的强大工具,vue.js组件系统. Vue.js组件系统 每一个新技 ...

随机推荐

  1. Linux ALSA 核心简单分析

    Linux 内核 ALSA 框架通过向用户空间导出多个设备文件,以使用户空间程序可以与内核的音频子系统交互,可以访问音频硬件设备. Linux 内核 ALSA 音频框架初始化 Linux 内核 ALS ...

  2. WPF使用TextBlock实现查找结果高亮显示

    在应用开发过程中,经常遇到这样的需求:通过关键字查找数据,把带有关键字的数据显示出来,同时在结果中高亮显示关键字.在web开发中,只需在关键字上加一层标签,然后设置标签样式就可以轻松实现. 在WPF中 ...

  3. WPF学习 - 自定义Panel

    WPF中的Panel(面板),是继承自FrameworkElement的抽象类,表示一个可以用来排列子元素的面板. 在WPF中,一种预设了几种常用的面板,如Grid.StackPanel.WrapPa ...

  4. C# Wke例子 -- WebUI登录窗口

    概述 Wke介绍: http://blog.csdn.net/sabrecode/article/details/78145938 用Wke做了一个登录窗口, webui比较特殊. 因为它就是一个超文 ...

  5. HTML一键打包APK工具1.9.5更新,新增一机一码功能

    HMTL网址打包APK,可以把本地HTML项目, Egret游戏,网页游戏,或者网站打包为一个安卓应用APK文件,无需编写任何代码,也无需配置安卓开发环境,支持在最新的安卓设备上安装运行. 打包软件会 ...

  6. 聊聊数据库事务内嵌TCP连接

    最近再看项目代码,发现很多的service里面,喜欢在事务内部再去调用HTTP请求,简单分析下此种方式的利弊与解决策略. 概述 在数据库内部嵌套TCP连接(一般是HTTP调用或是RPC远程调用). @ ...

  7. PostgreSQL学习笔记-4.基础知识:空值NULL、别名AS

    NULL 值代表遗漏的未知数据. 默认地,表的列可以存放 NULL 值. 本章讲解 IS NULL 和 IS NOT NULL 操作符. 语法 当创建表时,NULL 的基本语法如下: CREATE T ...

  8. chatgpt与搜索结合,百度会在这股浪潮下掘金吗?

    年末,在百度内部沟通会上,百度创始人李彦宏提到最近他的朋友们问他如何看待ChatGPT,包括他周围同行业中的同一领域和跨境人士. ​事实上,早在ChatGPT将他的对话能力和直观的互动方式展现给全世界 ...

  9. 推荐免费的svn空间(SVN代码托管)

    推荐免费的svn空间(SVN代码托管) 最近研究了国内和国外的免费svn空间,SVN代码托管,SVN在线,代码托管中心,有所心得. 1.http://www.svn999.com/ [推荐]国内的,免 ...

  10. 算法解析:LeetCode——机器人碰撞和最低票价

    摘要:本文由葡萄城技术团队原创.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 机器人碰撞 问题: 现有 n 个机器人,编号从 1 开始,每个机器人包含在路 ...