12.vue学习笔记(异步组件+依赖注入+Vue应用)

文章目录

        • 1.异步组件
        • 2.依赖注入
          • 注意事项
        • 3.Vue应用
          • 3.1.应用实例
          • 3.2.根组件
          • 3.3.挂载应用
          • 3.4.公共资源文件夹

1.异步组件
目的:优化组件性能
在大型项目中,我们可能需要拆分应用为更小的块,并仅在需要时再从服务器加载相关组件
defineAsyncComponent方法来实现此功能
打开项目会更快

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

<template><keep-alive><component :is="tabComponent"></component></keep-alive><button @click="changeHandle">切换组件</button>
</template>
<script>
import ComponentA from './components/ComponentA.vue';
//同步加载
//import ComponentB from './components/ComponentB.vue';
//异步加载组件
import { defineAsyncComponent } from 'vue';
const ComponentB = defineAsyncComponent(() => import('./components/ComponentB.vue')
)export default{data(){return{tabComponent: "ComponentA"}}, components:{ComponentA,ComponentB},methods:{changeHandle(){this.tabComponent = this.tabComponent == "ComponentA" ? "ComponentB":"ComponentA"}}
}</script>
2.依赖注入
通常情况下,从父组件向子组件传递数据时,会使用props。
现有一结构:有一些多层级嵌套的组件,形成了一颗巨大的组件树,而某个深层子组件需要
一个较远的先组件中的部分数据。在这种情况下,如果仅使用props则必须将其沿着组件链
逐级传递非常麻烦

在这里插入图片描述

在这里插入图片描述

这一问题被称为 prop逐级透传 
解决:provide 和 inject 可以解决这一问题一个父组件相当于其所有后代的组件,会作为依赖提供者。任何后代的组件树,无论层级有多深,都可以注入由父组件提供给整条链路的依赖 

在这里插入图片描述
在这里插入图片描述

也可以从data中读取数据

在这里插入图片描述

<template><h3>Grandpa</h3><Parent />
</template>
<script>
import Parent from './components/Parent.vue';
export default{data(){return{message:"祖级数据data"}},// provide:{//   message:"祖级数据"// },provide(){return{message: this.message}},components:{Parent}
}
</script>
——————————————————————————————————————————————————————————————————————
<template><h3>Child</h3><p>{{ message }}</p><p>{{ fullMessage }}</p>
</template>
<script>
export default{inject:["message"],data(){return{fullMessage: this.message}}
}
</script>
注意事项
provide 和 inject只能由上到下传递
除了在一个组件中提供依赖,还可以在整个应用层面里提供依赖

在这里插入图片描述

<template><h3>Child</h3><p>{{ message }}</p><p>{{ fullMessage }}</p><p>{{ golabData }}</p>
</template>
<script>
export default{inject:["message","golabData"],data(){return{fullMessage: this.message}}
}
</script>
——————————————————————————————————————————————————————————————————————
<template><h3>Grandpa</h3><Parent />
</template>
<script>
import Parent from './components/Parent.vue';
export default{data(){return{message:"祖级数据data"}},// provide:{//   message:"祖级数据"// },provide(){return{message: this.message}},components:{Parent}
}
</script>
——————————————————————————————————————————————————————————————————————
<template><h3>Parent</h3><p>{{ golabData }}</p><Child />
</template>
<script>
import Child from './Child.vue';
export default{inject:["golabData"],components:{Child}
}</script>
——————————————————————————————————————————————————————————————————————
<template><h3>Child</h3><p>{{ message }}</p><p>{{ fullMessage }}</p><p>{{ golabData }}</p>
</template>
<script>
export default{inject:["message","golabData"],data(){return{fullMessage: this.message}}
}
</script>
3.Vue应用
3.1.应用实例
每个vue应用都是通过createApp函数创建一个新的应用实例
import { createApp } from 'vue'const app = createApp({/* 根组件选项 */
})
//app:vue的实例对象
//在一个Vue项目中,有且只有一个Vue的实例对象
3.2.根组件
传入的createApp的对象实际上是一个组件,每个应用都需要一个“根组件”,
其他组件将作为其子组件
import { createApp } from 'vue'
import App from './App.vue'//App:就是根组件
const app = createApp(App)
3.3.挂载应用
应用实例必选在调用.mount()方法后才会渲染出来。
该方法接收一个“容器”参数,可以是一个实际的DOM元素或是一个CSS选择器字符串
app.mount('#app')
//挂载的内容都将在index.html中呈现
<div id="app"></div>

在这里插入图片描述

浏览器可执行文件:1.HTML2.CSS3.JavaScript4.Image
构建工具:Webpake(做一些打包,发布的操作)vite最终被编译成main.js文件,在html中引入
<script type="module" src="/src/main.js"></script>入口main.js
3.4.公共资源文件夹
在src目录下的assets文件夹的作用就是存放公共资源
例如:图片,公共CSS或者字体图标等                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

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

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

相关文章

Chat GPT:AI聊天机器人的革命性突破!

一、引言 近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术的发展日新月异&#xff0c;其中最具代表性的成果之一便是Chat GPT。这款基于自然语言处理&#xff08;NLP&#xff09;技术的聊天机器人&#xff0c;以其高度智能、灵活多变的特点&#xff0c;迅速吸引了全…

机器学习-面经

经历了2023年的秋招&#xff0c;现在也已经入职半年了&#xff0c;空闲时间将面试中可能遇到的机器学习问题整理了一下&#xff0c;可能答案也会有错误的&#xff0c;希望大家能指出&#xff01;另外&#xff0c;不论是实习&#xff0c;还是校招&#xff0c;都祝福大家能够拿到…

如何使用恢复软件恢复删除的文件?回收站文件恢复攻略

随着计算机在日常生活中的普及&#xff0c;文件的管理和存储成为我们不可或缺的技能。在Windows操作系统中&#xff0c;回收站作为一个帮助我们管理文件删除的重要工具&#xff0c;在误删了一些重要文件之后&#xff0c;我们可能会因为找不到回收站中恢复的文件而感到困惑。本文…

网络编程难点之select、poll与epoll详解

前言 为什么需要I/O多路复用技术&#xff1f; 首先&#xff0c;I/O多路复用技术主要被应用在需要高性能的网络服务器程序中。 高性能网络服务器程序需要做的事情就是供多个客户端同时进行连接并处理客户端传送过来的数据请求&#xff1a; 对于这种情况&#xff0c;很多人自然…

产品营销展示型wordpress外贸网站模板

工艺品wordpress外贸主题 简约大气的wordpress外贸主题&#xff0c;适合做工艺品进出品外贸的公司官网使用。 https://www.jianzhanpress.com/?p5377 餐饮设备wordpress外贸主题 简洁的wordpress外贸主题&#xff0c;适合食品机械、餐饮设备公司使用。 https://www.jianzh…

Pandas DataFrame 基本操作实例100个

Pandas 是一个基于NumPy的数据分析模块&#xff0c;最初由AQR Capital Management于2008年4月开发&#xff0c;并于2009年底开源。Pandas的名称来源于“Panel Data”&#xff08;面板数据&#xff09;和“Python数据分析”&#xff08;data analysis&#xff09;。这个库现在由…

[AutoSar]BSW_Com09 CAN driver 模块FULL(BASIC)CAN、FIFO选择

目录 关键词平台说明一、FULL CAN 和Basic CAN 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector &#xff0c;芯片厂商TI 英飞凌编程语言C&#xff0c;C编译器HighTec (GCC)autosar版本4.3.1 >>>>>回到总目录<&…

Vue-03

Vue指令 v-bind 作用&#xff1a;动态设置html的标签属性&#xff08;src url title…&#xff09; 语法&#xff1a;v-bind:属性名"表达式" 举例代码如下&#xff1a; 实现效果如下&#xff1a; 案例&#xff1a;图片切换 实现代码如下&#xff1a; 实现的效果…

unity学习(46)——服务器三次注册限制以及数据库化角色信息1--数据流程

1.先找到服务器创建角色信息代码的位置&#xff0c;UserBizImpl.cs中&#xff1a; public PlayerModel create(string accId, string name, int job) {PlayerModel[] playerModelArray this.list(accId);//list是个自建函数&#xff0c;本质通过accId来查询if (playerModelAr…

高斯消元法的应用

如果有这么一个线性规划系统的例子&#xff1a; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 将如上的线性规划系统转换为&#xff1a; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 这里要注意的是转换后的约束条件全部都变…

网络安全: Kali Linux 使用 nmap 扫描目标主机

目录 一、实验 1.环境 2. Kali Linux (2024.1) 使用 namp 扫描目标主机 3.Kali Linux (2024.1)远程登录 Windows Server 4.Kali Linux (2024.1) 使用crunch字典工具 5.Kali Linux (2024.1)使用hydra密码工具 6.Kali Linux (2022.3) 通过SSH端口获取 Ubuntu 密码 二、问题…

Python实现BIAS工具判断信号:股票技术分析的工具系列(4)

Python实现BIAS工具判断信号&#xff1a;股票技术分析的工具系列&#xff08;4&#xff09; 介绍算法解释 代码rolling函数介绍完整代码data代码BIAS.py 介绍 在股票技术分析中&#xff0c;BIAS&#xff08;乖离率&#xff09;是一种常用的技术指标&#xff0c;用于判断股票价…