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

组件的基本知识

组件

组件的基本知识

  • 组件
  • 概念
  • 组成
    • 步骤
    • 好处
    • 全局注册
    • 生命周期
    • 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(‘⾃定义事件’, 携带的参数…), 从⽽导致⽗组件
修改函数的时候(⼦触发)
在这里插入图片描述

相关文章:

  • 0基础 | Proteus | 中断 | 点阵
  • 移除生产环境所有console.log
  • Unity:Sprite Shapes(精灵形状)
  • 4.27算法题
  • 【计算机网络性能优化】从基础理论到实战调优
  • QT中的事件及其属性
  • 如何理解promise 续一
  • 2025 网络安全技术深水区探索:从 “攻防对抗” 到 “数字韧性” 的范式跃迁
  • ts全局导入接口
  • 深入浅出提示词工程(结合 DeepSeek)
  • C++翻转数相乘 2024年信息素养大赛复赛 C++小学/初中组 算法创意实践挑战赛 真题详细解析
  • 从数据孤岛到智能决策:健康管理系统如何打通企业健康大数据?
  • Shell脚本-while循环应用案例
  • Redux-Saga vs Redux-Thunk
  • 【C++QT】Layout 布局管理控件详解
  • 3G大一下安卓考核题解
  • 【Linux 线程与进程】线程与进程技术基础
  • MySQL 存储引擎与服务体系深度解析
  • Python爬虫(7)Python数据存储实战:CSV文件读写与复杂数据处理指南
  • 写读后感的时候,可以适当地引用书中的内容吗?
  • 葡萄牙、西班牙突发大范围停电,交通和通信服务受到严重影响
  • 马上评丨市长信箱“已读乱回”,群众在意的是什么
  • 伊朗最大港口爆炸:26公里外都能听到,超七百人受伤,原因指向化学品储存
  • 乌方称泽连斯基与特朗普进行简短会谈
  • 共话城市自然之美,“微观黄浦”自媒体网络大V沙龙首场活动举行
  • 云南省委常委、组织部部长刘非任浙江省委常委、杭州市委书记