Vue3组件应用及单文件组件 - 抽象独立的代码

news2025/1/16 12:50:59

目录

  • 前言
  • 01-组件的概念及组件的基本使用方式
  • 02-组件之间是如何进行互相通信的
  • 03-组件的属性与事件是如何进行处理的
  • 04-组件的内容是如何组合与分发处理的
  • 05-单文件组件SFC
  • 06-Vue CLI脚手架安装

前言

学习前的准备工作
官网地址:https://cn.vuejs.org/
Vue.js文件下载地址:https://unpkg.com/vue@3.2.36/dist/vue.global.js

01-组件的概念及组件的基本使用方式

  • 组件的概念
    • 组件是带有名称的可复用实例,通常一个应用会以一棵嵌套的组件树的形式来组织,比如:页头、侧边栏、内容区等组件。
      在这里插入图片描述
    • 组件可以拥有自己独立的结构,样式,逻辑,这样对于后期的维护是非常方便的。下面是评分组件与按钮组件的抽离过程。
      在这里插入图片描述
  • 组件的命名方式与规范
    • 定义组件可通过驼峰短线两种风格定义
    • 调用组件推荐短线方式
      在这里插入图片描述
  • 根组件
    • app容器可以看成根组件,所以根组件跟普通组件都具备相同的配置信息,例如:datacomputedmethods等等选项。
    • 根组件与MyHead组件形成了父子组件
      在这里插入图片描述
  • 局部组件与全局组件
    • 局部组件只能在指定的组件内进行使用
    • 全局组件可以在容器app下的任意位置进行使用。

02-组件之间是如何进行互相通信的

父子组件之间是可以进行通信的, 那么为什么要通信呢?
主要是为了让组件满足不同的需求,因为不同组件之间存在差异化。
在这里插入图片描述

  • 父子通信
    • 父传子通过props实现,
    • 子传父则通过emits自定义事件实现。
      -
      -
  • 父子通信需要注意的点
    • 组件通信的props是可以定义类型的,在运行期间会进行检测
    • 组件之间的数据是单向流动的,子组件不能直接修改传递过来的值
    • 数据的双向流动可利用v-model来实现

03-组件的属性与事件是如何进行处理的

  • 默认不通过props接收的话,属性会直接挂载到组件容器上,事件也是如此,会直接挂载到组件容器上。
    • 通过 inheritAttrs 选项阻止这种行为,通过指定这个属性为false,可以避免组件属性和事件向容器传递。
    • 通过 $attrs 内置语法,给指定元素传递属性和事件,$attrs也可以实现组件之间的间接通信。
      -

04-组件的内容是如何组合与分发处理的

  • 插槽slot
    • 在Vue中是通过插槽slot方式来进行分发处理的,Vue 实现了一套内容分发的 API,这套 API 的设计灵感源自 Web Components 规范草案,将元素作为承载分发内容的出口。
      在这里插入图片描述
  • 内容分发与插槽的注意点
    • 渲染作用域 -> 插槽只能获取当前组件的作用域
    • 具名插槽 -> 处理多个插槽的需求,通过v-slot指令实现,简写为#
    • 作用域插槽 -> 希望插槽能访问子组件的数据在这里插入图片描述

05-单文件组件SFC

Vue 单文件组件(又名 *.vue 文件,缩写为 SFC)是一种特殊的文件格式,它允许将 Vue 组件的模板、逻辑 与 样式封装在单个文件中。

  • 一个典型的单文件组件代码组成:

    • template -> 编写结构
    • script -> 编写逻辑
    • style -> 编写样式
      在这里插入图片描述
  • 为什么要使用 SFC?
    使用 SFC 必须使用构建工具,但作为回报带来了以下优点:

    • 使用熟悉的 HTML、CSS 和 JavaScript 语法编写模块化的组件

    • 让本来就强相关的关注点自然内聚

    • 预编译模板,避免运行时的编译开销

    • 组件作用域的 CSS

    • 在使用组合式 API 时语法更简单

    • 通过交叉分析模板和逻辑代码能进行更多编译时优化

    • 更好的 IDE 支持,提供自动补全和对模板中表达式的类型检查

    • 开箱即用的模块热更新 (HMR) 支持

  • 如何支持SFC
    可通过项目脚手架来进行支持,Vue支持Vite脚手架和Vue CLI脚手架

06-Vue CLI脚手架安装

  • Vue CLI的基本使用方式

    # 安装
    npm install -g @vue/cli
    # 创建项目
    vue create vue-study
    # 选择default
    default (babel, eslint)
    # 启动脚手架
    npm run serve
    

    通过localhost:8080进行访问。

  • 脚手架文件的组成

    • src/main.js -> 主入口模块
    • src/App.vue -> 根组件
    • src/components -> 组件集合
    • src/assets -> 静态资源

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

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

相关文章

【校招VIP】前端vue考点之生命周期和双向绑定

考点介绍: VUE是前端校招面试的重点,而生命周期和双向绑定又是基础考点之一,尤其在一二线公司,要求知道双向绑定的原理,以及相关代码实现。 『前端vue考点之生命周期和双向绑定』相关题目及解析内容可点击文章末尾链接…

骨传导耳机骑车好吗,骨传导耳机可用于骑摩托车吗?

如今,越来越多的人在选择耳机时转向了骨传导耳机,相较于传统耳机,这种神奇的创新产品能够让我们享受音乐的同时,也无需将耳机塞入耳中。无论是运动还是日常使用,这种设计都能给我们带来极佳的防丢能力。再也不用担心在…

【DDD - 概念】领域模型

什么是模型: 模型是一种知识形式,它通过对知识进行抽象和选择性简化和有意识的结构化来传达重要的要素信息,它可以使人专注于问题并帮助人快速的理解问题。因为系统需要一整套的知识体系来完成特定的功能,这一整套的知识体系是很…

误删文件恢复软件,这2款小白也能轻松使用!

“快给我推几个好用的文件恢复软件吧!真的非常需要!突然不见了好多重要的文件,让我超级崩溃!怎么找回这些文件呢?” 电脑误删文件已经是一个电脑用户比较常见的问题了,可能很多人都经历过这种崩溃的瞬间。那…

【C# 基础精讲】自定义异常类

自定义异常类是C#中异常处理的一种重要方式,它允许您创建具有自定义错误信息和处理逻辑的异常类型,以提高程序的可读性和可维护性。通过自定义异常类,您可以为特定的业务逻辑或应用场景创建更有意义的异常,使错误处理更加精确和有…

凸优化基础学习——凸集

凸优化基础学习——凸集 文章内容全部来自对Stephen Boyd and Lieven vandenberghe的Convex Optimization的总结归纳。 电子书资源: 链接:https://pan.baidu.com/s/1dP5zI6h3BEyGRzSaJHSodg?pwd0000 提取码:0000 基本概念 仿射集合 **…

JVM中判定对象是否回收的的方法

引用计数法 引用计数法是一种垃圾回收(Garbage Collection)算法,用于自动管理内存中的对象。在引用计数法中,每个对象都有一个关联的引用计数器,用于记录对该对象的引用数量。 当一个新的引用指向对象时,…

【数据分享】2023年7月全国各城市公交线路与站点数据

公交线路与站点数据是我们做城市研究时经常会用到的基础数据。那么去哪里获取该数据呢?今天,我们就给大家分享一份2023年7月采集的全国所有城市的公交站点与线路数据,数据格式为shp矢量格式。数据来源于开源公交信息查询网站。 数据预览 我…

Netty:ChannelHandler抛出异常,对应的channel被关闭

说明 使用Netty框架构建的socket服务端在处理客户端请求时,每接到一个客户端的连接请求,服务端会分配一个channel处理跟该客户端的交互。如果处理该channel数据的ChannelHandler抛出异常没有捕获,那么该channel会关闭。但服务端和其它客户端…

LeetCode Top100 Liked 题单(序号34~51)

​34. Find First and Last Position of Element in Sorted Array ​ 题意:找到非递减序列中目标的开头和结尾 我的思路 用二分法把每一个数字都找到,最后返回首尾两个数 代码 Runtime12 ms Beats 33.23% Memory14 MB Beats 5.16% class Solution {…

如何借助数字化为企业管理赋能?

数字化可以利用技术简化流程、增强决策并提高整体效率,从而显着增强企业管理能力。以下是有关如何使用数字化赋能企业管理的分步指南: 1.评估当前流程和需求: 了解您当前的业务流程、痛点以及可以从数字化中受益的领域。确定您想要解决的具体…

函数递归专题(案例超详解一篇讲通透)

函数递归 前言1.递归案例:案例一:取球问题案例二:求斐波那契额数列案例三:函数实现n的k次方案例四:输入一个非负整数,返回组成它的数字之和案例五:元素逆置案例六:实现strlen案例七:…

Python爱心光波

文章目录 前言Turtle入门简单案例入门函数 爱心光波程序设计程序分析 尾声 前言 七夕要来啦,博主在闲暇之余创作了一个爱心光波,感兴趣的小伙伴们快来看看吧! Turtle入门 Turtle 是一个简单而直观的绘图工具,它可以帮助你通过简…

avue 时间选择器限制时间范围(当天以后的时间、当前月、当前月剩余时间)

时间选择器做项目时必不可少的组件&#xff0c; 今天就简单举几个常用的例子供参考。 <avue-form v-model"form" :option"option"></avue-form><script> export default {data() {return {form:{},option:{column: [{label: "禁止日…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)八:自定义组件封装上

一、本章内容 本章实现一些自定义组件的封装,包括数据字典组件的封装、下拉列表组件封装、复选框单选框组件封装、单选框组件封装、文件上传组件封装、级联选择组件封装、富文本组件封装等。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 ![在这里插入图…

阿里云OSS对象存储的核心概念与购买应用

文章目录 1.OSS对象存储基本介绍1.1.OSS对象存储概念1.2.NAS与OSS存储的不同1.3.OSS的应用场景1.4.OSS术语对应表 2.购买OSS存储资源包3.KodCloud云盘接入OSS对象存储3.1.创建Bucket存储空间3.2.创建子用户用于管理Bucket3.3.获取用户的AccessKey3.3.为用户设置权限3.4.将Bucke…

ceph数据分布

ceph的存储是无主结构&#xff0c;数据分布依赖client来计算&#xff0c;有两个条主要路径。 1、数据到PG 2、PG 到OSD 有两个假设&#xff1a; 第一&#xff0c;pg的数量稳定&#xff0c;可以认为保持不变&#xff1b; 第二&#xff0c; OSD的数量可以增减&#xff0c;OSD的…

.NET6导入导出Excel

一、使用NPOI导出Excel //引入NPOI包 HTML <input type"button" class"layui-btn layui-btn-blue2 layui-btn-sm" id"ExportExcel" onclick"ExportExcel()" value"导出" />JS //导出Excelfunction ExportExcel() {…

判断推理 -- 图形推理 -- 属性规律

中心对称&#xff1a;取一个点&#xff0c;穿过中心能找到另一个对称点。把轴对称 中心对称标出来。五角星不是中心对称。 BD对称轴方向相同&#xff0c;但135自带对称轴&#xff0c;24没带&#xff0c;所以6应该不带对称轴。 百分号不是轴对称。 白色对称轴 平行 或者 夹角…

Python项目实战:创建 + 激活虚拟环境

文章目录 步骤一&#xff1a;新建虚拟环境 激活虚拟环境&#xff08;1.1&#xff09;BUG&#xff1a;激活后显示的Python版本与新建时指定的并不相同。&#xff08;1.2&#xff09;激活成功&#xff1a;在Anaconda软件的环境配置中&#xff0c; 将出现一个py39的虚拟环境。 步…