Vue.js组件开发

news2024/9/29 23:23:43

在 Vue.js 中进行组件开发可以极大地提高代码的可维护性和复用性。以下是关于 Vue.js 组件开发的详细介绍:

一、组件的基本概念

组件是 Vue.js 中可复用的最小单位,它将页面的一部分功能封装起来,使得代码更加模块化。一个组件可以包含 HTML 模板、JavaScript 逻辑和 CSS 样式。

二、创建组件的方式

  1. 全局组件

    • 使用 Vue.component() 方法创建全局组件。例如:
    Vue.component('my-component', {
      template: '<div>这是一个全局组件</div>',
    });
    
    • 全局组件在任何地方都可以直接使用,无需在父组件中进行局部注册。
  2. 局部组件

    • 在父组件中通过 components 选项注册局部组件。例如:
    const ParentComponent = {
      components: {
        'my-component': {
          template: '<div>这是一个局部组件</div>',
        },
      },
    };
    
    • 局部组件只能在注册它的父组件中使用。

三、组件的属性(Props)

  1. 定义属性

    • 在组件选项中使用 props 选项来定义接收的属性。例如:
    const ChildComponent = {
      props: ['message'],
      template: '<div>{{ message }}</div>',
    };
    
    • 可以指定属性的类型、默认值等。
  2. 传递属性

    • 在使用组件时,通过属性绑定的方式将数据传递给组件。例如:
    <child-component :message="parentMessage"></child-component>
    

四、组件的事件(Events)

  1. 触发事件

    • 在组件内部,可以使用 $emit() 方法触发自定义事件。例如:
    const ChildComponent = {
      methods: {
        buttonClick() {
          this.$emit('custom-event', 'some data');
        },
      },
      template: '<button @click="buttonClick">触发事件</button>',
    };
    
  2. 监听事件

    • 在父组件中使用 v-on 指令监听子组件触发的事件。例如:
    <child-component @custom-event="handleEvent"></child-component>
    

五、组件的插槽(Slots)

  1. 匿名插槽

    • 可以在父组件中使用 <slot> 标签向子组件传递内容,子组件中使用 <slot> 来显示父组件传递的内容。例如:
    <!-- 父组件 -->
    <child-component>
      <p>这是插槽内容</p>
    </child-component>
    
    <!-- 子组件 -->
    <template>
      <div>
        <slot></slot>
      </div>
    </template>
    
  2. 具名插槽

    • 父组件中可以使用带有 name 属性的 <slot> 标签向子组件传递内容,子组件中使用带有相同 name<slot> 来显示相应的内容。例如:
    <!-- 父组件 -->
    <child-component>
      <template v-slot:header>
        <h1>这是头部插槽内容</h1>
      </template>
      <template v-slot:content>
        <p>这是主体插槽内容</p>
      </template>
    </child-component>
    
    <!-- 子组件 -->
    <template>
      <div>
        <slot name="header"></slot>
        <slot name="content"></slot>
      </div>
    </template>
    

六、组件的生命周期钩子

Vue.js 组件有一系列的生命周期钩子函数,允许在不同阶段执行特定的逻辑。

  1. 常见的生命周期钩子:

    • created:组件实例被创建完成后调用。
    • mounted:组件被挂载到 DOM 后调用。
    • updated:组件数据更新后调用。
    • destroyed:组件被销毁前调用。
  2. 使用示例:

    const MyComponent = {
      data() {
        return {
          message: 'Hello',
        };
      },
      created() {
        console.log('组件实例创建完成');
      },
      mounted() {
        console.log('组件挂载到 DOM');
      },
      updated() {
        console.log('组件数据更新');
      },
      destroyed() {
        console.log('组件被销毁');
      },
    };
    

七、组件的样式作用域

  1. 为了避免组件之间的样式冲突,可以使用 scoped 属性来为组件的样式添加作用域。例如:

    <style scoped>
     .my-component {
        color: blue;
      }
    </style>
    
    • 这样定义的样式只会应用于当前组件的元素。
  2. 如果需要在多个组件之间共享样式,可以使用全局样式或者使用 CSS 预处理器的模块化功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2178092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于springoot新能源充电系统的设计与实现

新能源充电系统的设计与实现 摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统新能源充电系统信息管理难度…

国产纯电SUV都在秀,只有Model Y在挨揍

文/王俣祺 导语&#xff1a;如果想知道纯电SUV应该怎么选&#xff0c;一定有人告诉你“无脑选Model Y”&#xff0c;虽说特斯拉确实粉丝多&#xff0c;但这也恰恰证明Model Y一度成为了纯电SUV的标杆。有标杆自然就有挑战者&#xff0c;随着阿维塔07、智己LS6以及乐道L60先后上…

云南省职业院校技能大赛赛项规程(软件测试)

赛项名称&#xff1a;软件测试 英文名称&#xff1a;Software Testing 赛项组别&#xff1a;高等职业教育 赛项编号&#xff1a;GZ034 目录 一、 赛项信息 二、竞赛目标 三、竞赛内容 1、本赛项考查的技术技能和涵盖的职业典型工作任务 2、专业核心能力与职业综合能力…

商标名称注册查询,到底是查询什么!

在商标注册前是需要商标名称注册查询&#xff0c;那这个到底是查询什么&#xff0c;普推知产商标老杨发现&#xff0c;近日国家知产局发布《商标代理委托合同示范文本》征求意见稿&#xff0c;虽然是参考使用不具有强制性&#xff0c;里面对商标名称注册查询描述是申请前商标检…

完成UI界面的绘制

绘制UI 接上文&#xff0c;在Order90Canvas下创建Image子物体&#xff0c;图片资源ui_fish_lv1&#xff0c;设置锚点&#xff08;CountdownPanelImg同理&#xff09;&#xff0c;命名为LvPanelImg,创建Text子物体&#xff0c;边框宽高各50&#xff0c; &#xff0c;重名为LvT…

阻焊层解析:PCB的“保护伞”是什么?

在电子制造行业中&#xff0c;尤其是PCBA贴片加工领域&#xff0c;阻焊层是一个重要的概念。以下是对阻焊层的详细讨论分析&#xff0c;包括其定义、作用以及类型。 阻焊层的定义 阻焊层&#xff0c;顾名思义&#xff0c;是一种用于阻止焊接的材料层。在PCB&#xff08;印刷电…

11.C++程序中的常用函数

我们将程序中反复执行的代码封装到一个代码块中&#xff0c;这个代码块就被称为函数&#xff0c;它类似于数学中的函数&#xff0c;在C程序中&#xff0c;有许多由编译器定义好的函数&#xff0c;供大家使用。下面就简单说一下&#xff0c;C中常用的函数。 1.sizeof sizeof函…

Perceptually Optimized Deep High-Dynamic-RangeImage Tone Mapping

Abstract 我们描述了一种深度高动态范围&#xff08;HDR&#xff09;图像色调映射算子&#xff0c;该算子计算效率高且感知优化。 我们首先将 HDR 图像分解为归一化拉普拉斯金字塔&#xff0c;并使用两个深度神经网络 (DNN) 根据归一化表示估计所需色调映射图像的拉普拉斯金字…

Mybatis缓存机制(图文并茂!)

目录 一级缓存 需求我们在一个测试中通过ID两次查询Monster表中的信息。 二级缓存 案例分许(和上述一样的需求) EhCache第三方缓存 在了解缓存机制之前&#xff0c;我们要先了解什么是缓存&#xff1a; ‌缓存是一种高速存储器&#xff0c;用于暂时存储访问频繁的数据&…

利用大模型改进知识图谱补全的研究

人工智能咨询培训老师叶梓 转载标明出处 尽管现有的基于描述的KGC方法已经利用预训练语言模型来学习实体和关系的文本表示&#xff0c;并取得了一定的成果&#xff0c;但这些方法的性能仍然受限于文本数据的质量和结构的不完整性。 为了克服这些限制&#xff0c;中国科学技术…

PG高可靠模拟

模拟延迟 主库故障&#xff0c;备库尝试切换为主库

9.29 LeetCode 3304、3300、3301

思路&#xff1a; ⭐进行无限次操作&#xff0c;但是 k 的取值小于 500 &#xff0c;所以当 word 的长度大于 500 时就可以停止操作进行取值了 如果字符为 ‘z’ &#xff0c;单独处理使其变为 ‘a’ 得到得到操作后的新字符串&#xff0c;和原字符串拼接 class Solution { …

MySQL - 运维篇

一、日志 1. 错误日志 2. 二进制日志 3. 查询日志 记录了所有的增删改查语句以及DDL语句 4. 慢查询日志 二、主从复制 1. 概述 2. 原理 3. 搭建 三、分库分表 1. 介绍 2. Mycat概述 3. Mycat入门 4. Mycat配置 5. Mycat分片 6. Mycat管理及监控 四、读写分离 1. 介绍 2. 一…

【ADC】使用运算放大器驱动 SAR 型 ADC 时的线性输入范围

概述 本文学习于TI 高精度实验室课程&#xff0c;总结使用运算放大器驱动 SAR ADC 时的注意事项。具体包括&#xff1a;了解运算放大器共模范围和输出摆幅限制如何影响 SAR ADC 性能&#xff0c;研究运算放大器设计技术以避免共模和输出摆幅限制&#xff0c;讨论轨到轨放大器与…

PCB敷铜敷不了相同网络的线怎么办?

图片上的情况就是今天需要讲的内容&#xff0c;可以看出出来的线头是GND,敷的铜也是GND但是相同网络就是不能连在一起。 解释&#xff1a; 这是因为我们敷铜的时候属性选的是连接相同的net,如图所示&#xff1a; 解决办法&#xff1a; 只需要设置改为相同的Object就可以了&…

[Linux#60][HTTPS] 加密 | 数字指纹 | 详解HTTPS工作方案 | CA认证

目录 一.预备知识 1. 什么是HTTPS&#xff1f; 2. HTTP与HTTPS的区别 3. 什么是加密&#xff1f; 4. 常见的加密方式 4.1 对称加密 4.2 非对称加密 4.3 数据摘要与数据指纹 4.4 数字签名 二. HTTPS的工作方案 1 方案一&#xff1a;对称加密 2 方案二&#xff1a;非…

图像增强论文精读笔记-Deep Retinex Decomposition for Low-Light Enhancement(Retinex-Net)

1. 论文基本信息 论文标题&#xff1a;Deep Retinex Decomposition for Low-Light Enhancement 作者&#xff1a;Chen Wei等 发表时间和期刊&#xff1a;2018&#xff1b;BMVC 论文链接&#xff1a;https://arxiv.org/abs/1808.04560 2. 研究背景和动机 低光照条件下拍摄的…

LLM工程师启航:生成式AI简明教程

编者按&#xff1a; 大模型发展了近两年&#xff0c;Baihai IDP公众号也分享了近百篇LLM各环节的技术洞察&#xff0c;有前沿探讨、有落地实践、有应用经验。但回头来看&#xff0c;我们似乎从来没有认真、从0开始探讨过LLM的基本原理。 最近&#xff0c;一些企业客户和伙伴来询…

【IP限流】⭐️通过切面实现无校验保护接口的防刷逻辑

目录 &#x1f378;前言 &#x1f37b;一、实现方法 &#x1f37a;二、伪代码实现 &#x1f379;三、章末 &#x1f378;前言 小伙伴们大家好&#xff0c;上次写了一篇文章记录了最近自己装台式电脑中遇到的问题&#xff0c;以及整体的安装步骤和本地的配置选择&#xff0c…

【JavaEE初阶】网络原理

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 ⽹络互连 IP地址 端口号 协议 协议分层 优势 TCP/IP 五层网络模型 数据在网络通信中的整体流程 封装和分用 封装 分用 ⽹络互连 随着时代的发展&#xff0c;越来越需…