Vue3知识总结-4

news2024/11/15 17:52:33

Vue3知识总结-4

文章目录

  • Vue3知识总结-4
  • 插槽Slots
    • 渲染作用域
    • 默认内容
    • 具名插槽
    • 插槽中的数据传递
    • 具名插槽传递数据
  • 组件声明周期
    • 声明周期示意图
  • 组件生命周期的应用
  • 动态组件
  • 组件保持存活
    • 组件被卸载
  • 异步组件
  • 依赖注入

插槽Slots

在某些场景中,可能想要为子组件传递一些模版片段,让子组件在他们的组件中渲染这些片段

<template>
  <SlotsBase>
    <div>
      <h3>插槽标题</h3>
      <p>插槽内容</p>
    </div>
  </SlotsBase>
</template>
<script>
import SlotsBase from "@/components/SlotsBase.vue";
export default {
  components:{
    SlotsBase
  }
}
</script>
<style>

</style>

渲染作用域

插槽内容可以访问到父组件的数据作用域,因为插槽内容本心是在父组件模版中定义的

默认内容

如果没有传数据,可以有一个默认的值

具名插槽

插槽中的数据传递

需要同时使用父组件和子组件域内的数据。

具名插槽传递数据

<template>
  <SlotsBase>
    <div>
      <h3>插槽标题</h3>
      <p>插槽内容</p>
    </div>
    <template v-slot:header>
      <h3>{123}</h3>
    </template>
<!--    //简写的方式-->
    <template #main>
      <h3>{32131</h3>
    </template>
    <h3>{{message}}</h3>

    <h3>{{currentTest}}</h3>
<!--    传递数据-->
    <SlotsBase v-slot="slotProps">

        <h3>{{currentTest}}-{{slotProps.msg}}</h3>


    </SlotsBase>
<!--    具名插槽传递数据-->
    <SlotsBase>
      <template #header="slotProps">
        <h3>{{currentTest}}-{{slotProps.msg}}</h3>
      </template>
      <template #main="slotProps">
        <h3>{{currentTest}}-{{slotProps.job}}</h3>
      </template>
    </SlotsBase>

  </SlotsBase>

</template>
<script>
import SlotsBase from "@/components/SlotsBase.vue";
export default {
  data(){
    return{
      message:"插槽续集",
      currentTest:"测试内容"
    }
  },
  components:{
    SlotsBase
  }
}
</script>
<style>

</style>
<template>
  <h3>base</h3>
  <slot>插槽默认值</slot>
  <hr>
  <slot name="header">插槽默认值</slot>
  <slot name="main">插槽默认值</slot>
  <slot name="header" :msg="childMessage"></slot>
  <slot name="main" :job="jobMsg"></slot>
</template>

<script>
export default {
  data(){
    return{
      childMessage:"子组件数据",
      jobMsg:"xiyou "
    }
  }
}
</script>


<style scoped>

</style>

组件声明周期

创建到销毁的生命周期

声明周期示意图

在这里插入图片描述

<template>
  <h3>组件的生命周期</h3>
  <p>{{message}}</p>
  <button @click="updateHandle">更新数据</button>
</template>
<script>
//生命周期函数:
// 创建:beforeCreate created
// 挂载:beforeMount mounted
// 更新:beforeUpdate updated
// 销毁:beforeUnmount unmounted
export default {
  data(){
    return{
      message:"更新之前"
    }
  },
  methods:{
    updateHandle(){
      this.message = "更新之后"
    }
  },
  beforeCreate() {
    console.log("组件创建之前")
  },
  created() {
    console.log("组件创建之后")
  },
  beforeMount() {
    console.log("组件渲染之前")
  },
  mounted() {
    console.log("组件渲染之后")
  },
  beforeUpdate() {
    console.log("组件更新之前")
  },
  updated() {
    console.log("组件更新之后")
  },
  beforeUnmount() {
    console.log("组件销毁之前")
  },
  unmounted() {
    console.log("组件销毁之后")
  },


}
</script>

组件生命周期的应用

  1. 通过ref获取元素DOM结构
  2. 迷你网络请求渲染数据
<template>
  <h3>组件生命周期函数应用</h3>
  <p ref="name">程序员</p>
  <ul>
    <li v-for="(item,index) of banner" :key="index">
      <h3>{{item.title}}</h3>
      <p>{{item}}</p>
    </li>
  </ul>
</template>

<script>
export  default {
  data(){
    return{
      banner: []
    }
  },
  created() {
    this.banner = [
      {
        "title":"123",
        "content":"342"
      },
      {
        "title":"123",
        "content":"342"
      },
      {
        "title":"123",
        "content":"342"
      },
    ]
    },
  beforeMount() {
    console.log(this.$refs.name)
  },
  mounted() {
    console.log(this.$refs.name)
  },
}
</script>


<style scoped>

</style>

动态组件

<template>
  <component :is="tabComponent"></component>
  <button @click="changeHandler">切换组件</button>
<!--<ComponentA/>-->
<!--<ComponentB/>-->
</template>

<script>

import ComponentA from "@/components/ComponentA.vue"
import ComponentB from "@/components/ComponentB.vue"
export default {
  data(){
    return {
      tabComponent:"ComponentA"
    }
  },
  components:{
    ComponentA,
    ComponentB
  },
  methods:{
    changeHandler(){
  this.tabComponent = this.tabComponent == "ComponentA" ? "ComponentB" : "ComponentA"
    }
  }
}
</script>

组件保持存活

当使用在多个组件切换时候,被切换掉的组件会被卸载,可以用过组件强制被切换掉的组件任然保持“存活状态”

组件被卸载

<keep-alive>
  <component :is="tabComponent"></component>
</keep-alive>

异步组件

同步:多个功能,一个一个执行

异步:多个动能,同时运行

依赖注入

Provide 和inject只能由上往下传递

<template>
<h3>Child</h3>
  <p>{{title}}</p>
  <p>{{message}}</p>
</template>

<script >
export default {
  inject: ['message'],
  props:{
    title:{
      type:String
    },

  }
}

</script>

<style>

</style>
<template>
<h3>祖宗</h3>
  <Parent title="祖宗的财产"/>
</template>
<script>
import Parent from "@/components/Parent.vue";
export default {
  data(){
    return{
      message:"123"
    }
  } ,
  components:{
    Parent
  },
  // provide:{
  //   message:"213"
  // }
  provide(){
    return {
      message: this.message
    }
  }
}
</script>

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

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

相关文章

Hadoop Java API操作 及读取序列化文件(04-05-06)

针对于04-05-06班级整合。 1.创建java项目 2.修改pom.xml文件 添加依赖 <dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>3.1.4</version></dependenc…

react18【系列实用教程】memo —— 缓存组件 (2024最新版)

memo 的语法 如上图所示&#xff0c;在react中&#xff0c;当父组件重新渲染时&#xff0c;子组件也会重新渲染&#xff0c;即便子组件无任何变化&#xff0c;通过 memo 可以实现对组件的缓存&#xff0c;即当子组件无变化时&#xff0c;不再重新渲染子组件&#xff0c;核心代码…

leetcode刷题(6):二叉树的使用

文章目录 104. 二叉树的最大深度解题思路c 实现 94. 二叉树的中序遍历解题思路c 实现 101. 对称二叉树解题思路c 实现 96. 不同的二叉搜索树解题思路c 实现 102. 二叉树的层序遍历解题思路c 实现 104. 二叉树的最大深度 题目: 给定一个二叉树 root &#xff0c;返回其最大深度…

Git—安装及介绍

下载Git 官网地址&#xff1a;Git - Downloads (git-scm.com) 安装 双击安装包 点击 next 检查安装 桌面&#xff0c;右键鼠标&#xff0c;是否出现 Git GUI Here 和 Git Bash Here 打开Git Bash Here 输入命令 git --verison

LVS+Keepalived群集及搭建

LVSKeepalived群集及搭建 Keepalived 简介什么是Keepalived &#xff1f;Keepalived 的作用keepalived体系主要模块及作用Keepalived 选举策略选举策略priority 和 weight 的设定 Keepalived脑裂及解决方法部署LVSkeepalived高可用集群服务器准备配置NFS共享配置主DR服务器配置…

街道治安新利器:EasyCVR智能视频管理方案助力城市安全新高度

一、背景分析 随着城市化进程的加快和社会治安形势的日趋复杂&#xff0c;街道治安管理面临着前所未有的挑战。对于街道治安的管理&#xff0c;面临着街道上机动车、非机动车违停、游商摊贩、垃圾堆积、人员监管等问题&#xff0c;既影响市容市貌&#xff0c;又有安全隐患。传…

Python——Pandas的基本使用方法(1)

1.文件读写 图1-1 iris部分数据 图1-2 tips部分数据 图1-3 tips1部分数据 1.1 读取csv文件 —— read.csv() read.csv()部分参数的解释如下&#xff1a; 参数名称作用备注filepath_or_buffer要读取的文件路径或对象sep字段分隔符&#xff0c;默认为逗号delimiter字段分隔符与…

通过C++和libcurl下载网易云音乐音频文件的5个简单步骤

概述 在网络编程中&#xff0c;使用C和libcurl库下载文件是一项常见的任务。网易云音乐作为中国领先的在线音乐服务平台之一&#xff0c;以其丰富的音乐资源、优质的音质和智能推荐系统而广受欢迎。由于其平台提供了大量的正版音乐资源&#xff0c;用户在下载音频文件时可能会…

Pikachu 靶场 File Inclusion 通关解析

前言 Pikachu靶场是一种常见的网络安全训练平台&#xff0c;用于模拟真实世界中的网络攻击和防御场景。它提供了一系列的实验室环境&#xff0c;供安全专业人士、学生和爱好者练习和测试他们的技能。 Pikachu靶场的目的是帮助用户了解和掌握网络攻击的原理和技术&#xff0c;…

微信小程序的自定义组件

一、创建自定义组件 &#xff08;1&#xff09;定义&#xff1a; 把页面重复的代码部分封装成为一个自定义组件&#xff0c;以便在不同的页面中重复使用&#xff0c;有助于代码的维护。 &#xff08;2&#xff09;组成&#xff1a; 自定义组件的组成&#xff1a;json文件&a…

自学C语言能达到什么境界呢?

C 语言是一门广泛应用于系统软件、嵌入式系统、游戏开发等领域的编程语言。那么&#xff0c;通过自学 C 语言&#xff0c;能够达到什么样的境界呢&#xff1f; 就像学习小提琴一样&#xff0c;仅凭自学也可以达到一定的水平&#xff0c;能够自娱自乐&#xff0c;在亲友聚会时表…

python手写数字识别(PaddlePaddle框架、MNIST数据集)

python手写数字识别&#xff08;PaddlePaddle框架、MNIST数据集&#xff09; import paddle import paddle.nn.functional as F from paddle.vision.transforms import Compose, Normalizetransform Compose([Normalize(mean[127.5],std[127.5],data_formatCHW)]) # 使用tran…

软件确认测试详细介绍

在软件开发流程中&#xff0c;确认测试是一个至关重要的环节&#xff0c;它确保软件产品满足预定的需求、性能和质量标准。本文将详细介绍软件确认测试的概念、目的、方法、执行步骤以及其在软件开发周期中的重要性。   一、软件确认测试的概念   软件确认测试&#xff0c;…

SuperBox设计出图的效率提升!新增内门自动开孔和垫高支架图纸输出功能

越来越多的配电箱项目要求带内门&#xff0c;内门不仅可以有效减少外界灰尘、异物进入配电箱内部&#xff0c;保障配电箱正常运行&#xff0c;还能够隔离操作人员意外触摸导电部件&#xff0c;减少触电事故的发生。但是配电箱在配置内门后&#xff0c;会给设计带来更多的要求&a…

[图解]SysML和EA建模住宅安全系统-04

1 00:00:01,200 --> 00:00:04,710 我们首先来看一下需求图的一些要点 2 00:00:05,810 --> 00:00:07,080 需求图用来干什么 3 00:00:07,210 --> 00:00:12,080 用来记录文本形式的一些需求 4 00:00:12,090 --> 00:00:13,480 和需求的素材 5 00:00:14,540 --> …

【GESP】2023年12月图形化三级 -- 小杨做题

小杨做题 【题目描述】 为了准备考试,小杨每天都要做题。第 1 天,小杨做了 a a a 道题,第 2 天,小杨做了 b b b

GPT-4o: 从最难的“大海捞针”基准看起

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在阅读过程中有些知识点存在盲区&#xff0c;可以回到如何优雅的谈论大模型重新阅读。另外斯坦福2024人工智能报告解读为通识性读物。若对于如果…

高压无源探头能测整流桥电压吗?

高压无源探头是用于测量高电压电路中信号的一种工具&#xff0c;它不需要外部电源供电。然而&#xff0c;对于测量整流桥电压&#xff0c;需要考虑几个因素以确定是否可以使用高压无源探头。 首先&#xff0c;让我们了解一下整流桥的基本原理。整流桥是一种电路&#xff0c;用…

华为OD机试 - 反射计数 - 矩阵(Java 2024 C卷 200分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

人工智能领域向量化技术加速多模态大模型训练与应用

目录 前言1、TextIn文档解析技术1.1、文档解析技术1.2、目前存在的问题1.2.1、不规则的文档信息示例 1.3、合合信息的文档解析1.3.1、合合信息的TextIn文档解析技术架构1.3.2、版面分析关键技术 Layout-engine1.3.3、文档树提取关键技术 Catalog-engine1.3.4、双栏1.3.5、非对称…