组件的基本知识

组件

组件的基本知识

  • 组件
  • 概念
  • 组成
    • 步骤
    • 好处
    • 全局注册
    • 生命周期
    • scoped
      • 原理
    • 父子通信
      • 步骤
      • 子传父


概念

就是将要复用的标签,抽离放在一个独立的vue文件中,以供主vue文件使用

组成

三部分构成
template:HTML 结构
script: JS 逻辑
style: CSS 样式 (可⽀持less/scss,需要装包)

组件中也可以支持less/scss
style标签, lang=“less/scss” 开启 less/scss 功能
装包: npm i less less-loader -D 或者 npm i sass -D


步骤

步骤:抽离 -> 封装( JS+HTML+CSS ) -> 导⼊ -> 使⽤
简而言之:新建一个需要在主vue文件复用的vue组件,然后再主函数中进行导入使用

示例:在

src/components/MyPanel.vue

下创建一个复用的组件,然后需要在主vue文件应用那么我在主vue文件的就应该这样写

//导入方式一般用大驼峰,在后续使用的时候用烤串法也不出现错误,但是如果用烤串法只能用烤串法写出
<script setup>
import MyPanel from './components/MyPanel.vue'
<script>

使用分为烤串法和大驼峰法

<!-- ⼤驼峰标 双标签 --><MyPanel></MyPanel><!-- ⼤驼峰 ⾃闭合的单标签 --><MyPanel /><!-- 烤串法 双标签 --><my-panel></my-panel><!-- 烤串法 ⾃闭合的单标签 --><my-panel />

好处

化⼤为⼩、化繁为简 , 利于代码复⽤和维护


全局注册

可以在任何组件中使用,只要须在main.js导入,其他文件中可以直接使用


import BitButton from './components/BitButton.vue'
app.component('BitButton', BitButton)

生命周期

① 创建 ② 挂载 ③ 更新 ④ 卸载
创建阶段:创建响应式数据
挂载阶段:渲染模板
更新阶段:修改数据,更新视图
卸载阶段:卸载组件
在这里插入图片描述选项式API下, 如果⼀进⼊组件就发请求,在created进⾏?
选项式API下, 最早可以操作原⽣DOM, 在mounted进⾏?
选项式API下, 组件销毁, 要做优化⼯作, 在unmounted进⾏?

创建阶段挂载阶段更新阶段销毁阶段
Vue2beforeCreate/createdbeforeMount/mountedbeforeUpdate/updatedbeforeUnmount/unmounted
Vue3setup(⽹络请求)onBeforeMount/onMounted(操作DOM)onBeforeUpdate/onUpdatedonBeforeUnmount/onUnmounted(清理⼯作)
<script setup>
import { onMounted, onUnmounted } from 'vue'
// 开启定时器
const timer = setInterval(() => {
console.log('Hello World')
}, 1000)
// 组件挂载后
onMounted(() => {
// console.log(document.querySelector('p'))
// 将 p 标签的字体颜⾊设置为 green
document.querySelector('p').style.color = 'green'
})
// 组件卸载后
onUnmounted(() => {
// 关闭定时器
clearInterval(timer)
})
</script>

scoped

由于vue会进行打包操作,然后在前端渲染,会出现将”局部样式“变为“全局样式”,所以这时候就需要用到scoped,直接在

原理

程序员书写的选择器与属性选择器[data-v-xxxx]形成交集选择器,
因为属性选择器[data-v-xxxx]的唯⼀性, 保证了该样式只能对当前组件内的元素⽣效

父子通信

步骤

⼦组件通过 defineProps 接收数据(⼦接)
⽗组件通过 ⾃定义属性 传递数据 (⽗传)
在这里插入图片描述

子传父

⽗组件内,⼦组件上,绑定⾃定义事件,@⾃定义事件=“⽗修改数据的函数” (⽗绑定)
⼦组件恰当时机, 触发⽗组件的⾃定义事件 , emit(‘⾃定义事件’, 携带的参数…), 从⽽导致⽗组件
修改函数的时候(⼦触发)
在这里插入图片描述

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

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

相关文章

将视频生成视频二维码步骤

如何将视频链接生成二维码 生成与视频关联的二维码通常涉及以下几个方面&#xff1a;选择合适的库或工具、准备视频链接以及将其转换为二维码图像。以下是详细的说明&#xff1a; 使用JavaScript/Vue框架生成二维码 在前端开发中&#xff0c;可以使用 qrcode 或者 vue-qrcod…

关系型数据库PostgreSQL for Mac 保姆级使用教程

第一部分&#xff1a;安装PostgreSQL 方法一&#xff1a;使用Postgres.app&#xff08;最简单&#xff09; 访问 Postgres.app官网 下载最新版本&#xff0c;将 Postgres.app 移动到 “Applications” 文件夹。 双击Postgres.app打开应用&#xff0c;点击"Initialize&q…

Redis超详细入门教程(基础篇)

一&#xff1a;Redis 简介 &#xff08;1&#xff09;Mysql: 将数据通过数据文件存在磁盘上 通过二维表存储数据 &#xff08;2&#xff09;Redis 定义&#xff1a; 优点&#xff1a; 热点数据&#xff1a;短时间内有大量用户访问 二&#xff1a;Redis下载与安装 Windows系统安…

【JS-Leetcode】2621睡眠函数|2629复合函数|2665计数器||

文章目录 2621睡眠函数2629复合函数2665计数器|| 这三个题目涉及setTimeout、promise、数组reduce方法&#xff0c;闭包。 2621睡眠函数 请你编写一个异步函数&#xff0c;它接收一个正整数参数 millis &#xff0c;并休眠 millis 毫秒。要求此函数可以解析任何值。 原理&am…

重塑编程体验边界:明基RD280U显示器深度体验

重塑编程体验边界&#xff1a;明基RD280U显示器深度体验 写在前面 本文将以明基RD280U为核心&#xff0c;通过技术解析、实战体验与创新案例&#xff0c;揭示专业显示器如何重构开发者的数字工作台。 前言&#xff1a;当像素成为生产力的催化剂 在GitHub的年度开发者调查中&…

如何通过挖掘需求、SEO优化及流量变现成功出海?探索互联网产品的盈利之道

挖掘需求&#xff0c;优化流量&#xff0c;实现变现&#xff1a;互联网出海产品的成功之路 在当今全球化的数字时代&#xff0c;越来越多的企业和个人选择将业务扩展到国际市场。这一趋势不仅为企业带来了新的增长机会&#xff0c;也为个人提供了通过互联网产品实现盈利的途径…

cuda学习2:cuda编程基本概念

CUDA基本概念 主机&#xff08;host&#xff09; 通常将起控制作用的CPU称为主机&#xff08;host&#xff09; 设备&#xff08;device&#xff09; 将起加速作用的 GPU 称为设备&#xff08;device&#xff09; 流处理器&#xff08;streaming processor&#xff09; 物…

AVL树的介绍与学习

目录 1.前言 2.AVL树 3.AVL树的插入 平衡因子的更新 更新停止的条件 旋转 1.前言 在学习了二叉搜索树&#xff0c;set和map之后&#xff0c;我们接下来趁热打铁&#xff0c;继续学习AVL树。 2.AVL树 1.AVL树具有二叉搜索树的性质&#xff0c;但是它的左右子树的高度差不…

数字人接大模型第二步:实时语音同步

接上例第一步,还是dh_live项目,增加了一个完整的实时对话样例,包含vad-asr-llm-tts-数字人全流程,以弥补之前的只有固定的问答的不足。 VAD(Voice Activity Detection,语音活动检测)VAD用于检测用户是否正在说话,从而触发后续的语音处理流程。 ASR(Automatic Speech R…

01_Long比较值 类型相同值不同

问题描述&#xff1a; 看如下代码&#xff1a; Long a 128L; Long b 128L;System.out.println(a b);运行结果如下&#xff1a; 明明 a 和 b 的值一样&#xff0c;但是结果却为 False&#xff0c;为什么同样的类型&#xff0c;同样的值&#xff0c;却不相等&#xff0c;这是…

EKS环境下服务重启50X错误

EKS中&#xff0c;当使用AWS Load Balancer Controller时&#xff0c;ALB有两种模式&#xff0c;Internet-facing和Internet&#xff0c;当使用Internet模式时&#xff0c;ALB注册的是NodeIP&#xff1b;使用Internet-facing模式时&#xff0c;ALB注册的则是Pod IP。从模式上来…

Android项目升级插件到kotlin 2.1.0后混淆网络请求异常

背景 项目kt插件1.9.24升级到2.1.0后打包编译release网络请求失败了。 retrofit版本2.9.0 错误详情 java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedTypeat retrofit2.m.a(Unknown Source:2477)at retrofit2.K.invoke(U…

Vue中Axios实战指南:高效网络请求的艺术

Axios作为Vue生态中最流行的HTTP客户端&#xff0c;以其简洁的API和强大的功能成为前后端交互的首选方案。本文将带你深入掌握Axios在Vue项目中的核心用法和高级技巧。 一、基础配置 1. 安装与引入 npm install axios 2. 全局挂载&#xff08;main.js&#xff09; import …

Flink维表深度解析

一、维表的概念与作用 维表&#xff08;Dimension Table&#xff09; 是数据仓库中的核心概念&#xff0c;通常用于存储静态或缓慢变化的业务实体信息&#xff08;如用户资料、商品信息、地理位置等&#xff09;。在实时流处理场景中&#xff0c;维表的作用是为主数据流&#…

SKLearn - Biclustering

文章目录 Biclustering &#xff08;双聚类&#xff09;谱二分聚类算法演示生成样本数据拟合 SpectralBiclustering绘制结果 Spectral Co-Clustering 算法演示使用光谱协同聚类算法进行文档的二分聚类 Biclustering &#xff08;双聚类&#xff09; 关于双聚类技术的示例。 谱…

PostSwigger Web 安全学习:CSRF漏洞2

CSRF 漏洞学习网站&#xff1a;What is CSRF (Cross-site request forgery)? Tutorial & Examples | Web Security Academy CSRF 漏洞&#xff1a;SameSite相关绕过 当浏览器访问服务器时&#xff0c;服务器会在 Cookie 中添加 SameSite 属性来告诉浏览器是否在来自其他…

从基础到实战的量化交易全流程学习:1.3 数学与统计学基础——概率与统计基础 | 数字特征

从基础到实战的量化交易全流程学习&#xff1a;1.3 数学与统计学基础——概率与统计基础 | 数字特征 第一部分&#xff1a;概率与统计基础 第2节&#xff1a;数字特征&#xff1a;期望值、方差、协方差与相关系数 一、期望值&#xff08;Expected Value&#xff09;&#xff1a…

MySQL(聚合函数)

单行函数 对每一条记录输入值进行计算&#xff0c;得到相应的计算结果&#xff0c;返回给用户&#xff0c;也就是说&#xff0c;每条记录作为一个输入参数&#xff0c;经过函数计算得到每条记录的计算结果。 每一个函数中都有一些常用的函数&#xff08;方法&#xff09; 在学…

babel核心知识点

Babel 是一个 JavaScript 编译器&#xff0c;主要用于将 ECMAScript 2015 版本的代码转换为向后兼容的 JavaScript 代码&#xff0c;以便在旧版本的浏览器或环境中运行。以下是 Babel 的核心知识点&#xff1a; 1. 基本概念 编译器&#xff1a;Babel 本质上是一个编译器&…

javaScript--数据结构和算法

在 JavaScript 里&#xff0c;数据结构和算法是十分关键的部分&#xff0c;下面介绍几种常见的数据结构和对应的算法。 数组&#xff08;Array&#xff09; 数组是最基础的数据结构&#xff0c;用于存储一系列有序的数据。 // 创建数组 const arr [1, 2, 3, 4, 5];// 访问元素…