Vue3知识总结-4

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.mzph.cn/web/12721.shtml

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

相关文章

xxljob分片广播+多线程实现高效定时同步elasticsearch索引库

需求&#xff1a;为了利用elasticsearch实现高效搜索&#xff0c;需要将mysql中的数据查出来&#xff0c;再定时同步到es里&#xff0c;同时在同步过程中通过分片广播多线程提高同步数据的效率。 1. 添加映射 使用kibana添加映射 PUT /app_info_article {"mappings&quo…

HL7协议

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.介绍2.传输协议规范2.1. MLLP2.1.1. 数据头定义2.1.2. 转义字符集 2.2. 规范说明2.3. 消息格式说明 3.HL7结构介绍3.1. 患者建档&#xff08;ADT^A28&#xff09;…

linux c++获取当前程序的运行路径

比如我的程序名为:aaa 存放路径是:/homo/code/ 我在/home/ccc 目录执行shell文件。shell文件的内容为 #!/bin/bash /homo/code/aaa我希望获取的路径是 /homo/code/ 而不是脚本的路径 给出完整接口代码 #include <iostream> #include <string> #include <stri…

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

目录 前言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、非对称…

matlab实现马尔科夫链

在MATLAB中实现马尔科夫链算法通常涉及定义状态转移矩阵、初始化状态向量以及迭代状态转移过程。以下是一个简单的步骤和示例代码&#xff0c;用于演示如何在MATLAB中实现马尔科夫链。 步骤 定义状态转移矩阵&#xff1a;状态转移矩阵P描述了从一个状态转移到另一个状态的概率…

注册海外公司为什么?

注册海外公司通常是为了实现以下目标之一&#xff1a; 国际化业务扩张&#xff1a; 一些企业可能希望在海外注册子公司&#xff0c;以便在国际市场上开展业务。这样的公司可能是跨国企业&#xff0c;已经在多个国家有业务&#xff0c;或者是希望进入新的国际市场的企业。 税收…

计算机服务器中了locked勒索病毒怎么解决,locked勒索病毒解密恢复工具

在网络技术飞速发展的时代&#xff0c;通过网络开展各项工作业务成为众多企业的首选&#xff0c;网络也为企业的生产运营提供了极大便利&#xff0c;大大提升了企业办公效率&#xff0c;但是利用网络避免不了网络威胁的存在&#xff0c;数据安全问题一直是企业关心的主要话题。…

不知道代理IP怎么挑?一文带你了解挑选的关键点!

IP代理在如今的网络环境中扮演者至关重要的角色。通过使用代理IP&#xff0c;可以增强用户个人信息和网络的安全。但想要挑选到适合自己的代理IP&#xff0c;并非是一件易事。今天就为大家带来挑选代理IP的关键注意点&#xff0c;帮你轻松筛选出最佳的选择。 稳定性与速度&…

TikTok机房ip好还是住宅ip好?

住宅ip比较好&#xff0c;机房数据中心IP高效、低价&#xff0c;所以使用的人多且用处复杂&#xff0c;这类ip极大可能存在滥用的黑历史&#xff0c;通过此类ip访问tiktok&#xff0c;被禁止的可能性更高&#xff0c;更容易被拉入黑名单。所以我们推荐tiktok独享原生ip搭建节点…

CC工具箱使用指南:【界线导出Excel(一横)】

一、简介 群友定制工具。 这个工具的目的是将面要素的边界线的属性导出Excel。 给定的Excel模板如下&#xff1a; 结果需要输出每一段界一的起点、终点的坐标&#xff0c;这里以度分秒的方法表达。 每段界线的方位角以及方向&#xff0c;方向按16位方位角描述&#xff1a; …

高通QCS6490开发(六):连接使用摄像头

本文将会介绍如何在FV01开发板上连接摄像头和显示预览。 所用硬件有&#xff1a; 1. FV01开发板 2.Raspberry 摄像头 操作步骤如下&#xff1a; 通过FPC线和杜邦线将FV01板和摄像头连接起来&#xff0c;接线如下&#xff1a; 1、Camera设备连接&#xff0c;通过22pin转15pi…

togaf培训简介2

1.定义 2.ADM 业务下降期不要瞎折腾&#xff0c;上升期配合业务做一些改革&#xff1f; 项目交付物不能是聊天记录、PPT什么的&#xff0c;最起码是邮件。 3.架构内容框架 或者叫&#xff1a;企业统一体。 包括&#xff1a;企业连续性和解决方案连续性 方案和工具的解耦很大程…

【回溯】1255. 得分最高的单词集合

本文涉及知识点 回溯 力扣难道&#xff1a;1881 LeetCode1255. 得分最高的单词集合 你将会得到一份单词表 words&#xff0c;一个字母表 letters &#xff08;可能会有重复字母&#xff09;&#xff0c;以及每个字母对应的得分情况表 score。 请你帮忙计算玩家在单词拼写游戏…

Mysql常见数据类型探索

Mysql常见数据类型探索 数值类型 MySQL 支持所有标准 SQL 数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC)&#xff0c;以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。 关键字INT是INTEGER的同义词&#xff0c;关键字DEC是…

K8s 二进制部署 上篇

一 K8S按装部署方式&#xff1a; ① Minikube Minikube是一个工具&#xff0c;可以在本地快速运行一个单节点微型K8S&#xff0c;仅用于学习、预览K8S的一些特 性使用。 部署地址&#xff1a;https://kubernetes.io/docs/setup/minikube ② Kubeadmin Kubeadmin也是一个工…

vue网页端控制台展示独有标记

效果展示 实现步骤 1. 新建js文件 定义一个类 用于提供控制台打印日志显示样式的方法 src\libs\util.log.js class Logger {// 定义静态方法static typeColor(type "default") {let color "";switch (type) {case "default":color "#3…

后台菜单数据递归展示

后台菜单数据递归展示 效果示例图aslide.vueaslideItem.vuemenu 效果示例图 aslide.vue <script setup>import {ref} from vue;const props defineProps({isCollapse: {type: Boolean,default: false}});import AslideItem from "./aslideItem.vue"const def…

MIRO时,修改页签“采购订单参考”的数量时,金额不自动计算

MIRO 发票校验时&#xff0c;进入到如下界面&#xff0c;系统参考采购订单自动带出已经收货的金额和数量。 此时如果想要修改数量时&#xff0c;有些用户账号下&#xff0c;金额不自动计算&#xff0c;但是有些用户账号下&#xff0c;数量更改时&#xff0c;系统自动计算和建议…

“普惠门诊保”24年升级回归! 您医保的有效商业补充!

2024年5月15日&#xff0c; “普惠门诊保如意版”正式官宣发布&#xff01; 2023年&#xff0c;中国人民财产保险股份有限公司湖南省分公司积极创新的惠民型商业补充医疗保险&#xff0c;推出湖南省内首款互联网门诊医疗保险“普惠门诊保” 2024年&#xff0c;在去年保障内容…

穷人翻身的秘诀!2024年普通人如何创业赚钱?穷人如何逆袭翻身?普通人创业新风口?

穷人的思维有一个致命的缺陷&#xff0c;就是追求确定性&#xff0c;进而失去了可能性。而赚钱的真相实际上非常残酷。世界上能够赚钱的事情必定是不确定的&#xff0c;能够赚取巨额财富的事情更是极度不确定的。只有面对不确定性&#xff0c;才能让你把竞争对手拦在门外&#…