当前位置: 首页 > web >正文

组件的基本知识

组件

组件的基本知识

  • 组件
  • 概念
  • 组成
    • 步骤
    • 好处
    • 全局注册
    • 生命周期
    • 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.xdnf.cn/news/2511.html

相关文章:

  • 力扣hot100,739每日温度(单调栈)详解
  • 【Spring Boot】Maven中引入 springboot 相关依赖的方式
  • linux
  • Maven 使用教程
  • C语言复习笔记--内存函数
  • 土壤有机质含量
  • adb常用的20个命令
  • java_基础Java 转义字符学习笔记
  • Top-k问题的解法
  • 在线重定义——分区表改造
  • 收藏按钮变色问题
  • 18.电源滤波器的量化选型方法
  • IP地址如何切换到国内别的省份?一步步指导
  • 蓝桥杯 11. 打印大X
  • 设计模式每日硬核训练 Day 16:责任链模式(Chain of Responsibility Pattern)完整讲解与实战应用
  • 从零到精通:深入剖析GoFrame的gcache模块及其在项目中的实战应用
  • 实现 Babylon.js 鼠标输入管理单例 (MouseController) 的最佳实践
  • WebGIS面试题目整合资料
  • 分享!RASP的技术应用
  • 鸿蒙OSS文件(视频/图片)压缩上传组件-能够增删改查
  • 软件功能设计视角下的能源管理系统功能清单构建与实践​
  • 构建事件驱动的云原生后端系统 —— 从设计到实践
  • 多模态大语言模型arxiv论文略读(四十五)
  • 【数据结构_堆
  • 虚函数表的设计和多态的实现
  • 《AI大模型应知应会100篇》第38篇:大模型与知识图谱结合的应用模式
  • 计算机三大主流操作系统的前世今生 - Linux|macOS|Windows
  • 多商户 | 可二次开发【全开源】小程序源码商城挑选指南!
  • SQLMesh 测试自动化:提升数据工程效率
  • 【MySQL专栏】MySQL数据库表的内外连接