【学Vue就跟玩一样】如何正确快速使用Vue中的插槽和配置代理

news/2024/10/22 14:42:00/

一,插槽

1.什么是插槽

让父组件可以向子组件指定位置插入html结构,也是一种组件间通信的方式,适用于父组件——>子组件。插槽分为三种,分别是默认插槽具名插槽作用域插槽,下面分别列出了如何使用这三种插槽

1.1默认插槽

啥是默认插槽呢?其实默认插槽相当于你买了一新房子,然后各个房间都已经装饰好了,但是你还有一间屋子还没装修,因为你暂时不知道里面要装一套电竞设备还是弄一书柜,所以先在那屋留好地方,这时候你来到了商场,看到一心仪的书柜,然后就跟销售人员说,这个我买了,之后就把这个书柜放到了那个空出来的屋子里,插槽也是如此,子组件好比空屋子,父组件好比心仪书柜(记住<子组件内定义插槽父组件内写好数据>即可

子组件内定义一个插槽

<template><div class="category"><h3>{{title}}</h3><!-- 定义一个插槽(等待组件的使用者进行填充) --><slot>我是默认插槽,在没有传结构式我才会显示该片段文字</slot></div>
</template>

父组件内填充数据

 <Category title="美食"><img slot src="./assets/logo.png" alt></Category>

1.2具名插槽

简单来说在子组件内具名插槽比默认的插槽多了一个name属性,在父组件内多了这样一行代码 slot = "具名插槽名",具名插槽能更好的控制所要放置数据的位置

父组件使用center和footer插槽

      <Category title="游戏"><ul slot="center">// 使用center具名插槽<li v-for="(g,index) in games" :key="index">{{g}}</li></ul><div class="foot" slot="footer">// 使用footer具名插槽<a href="javascript:;">植物大战讲师</a><a href="javascript:;">冰火人闯森林</a></div></Category>

子组件内定义conter和footer具名插槽

 <template><div class="category"><h3>{{title}}</h3><!-- 具名插槽 --><slot name = "center">我是具名插槽center</slot><slot name = "footer">我是具名插槽footer</slot><img src="" alt=""></div></template>

1.3作用域插槽

理解:数据在组件的自身,但根据数据生成的结构需要组件的使用者来决定。(games数据在Category组件中, 但使用数据所遍历出来的结构由App组件决定)

父组件

    <Category title="游戏"><template slot-scope="{games}"><h4><li v-for="(g,index) in games" :key="index">{{g}}</li></h4></template></Category>

子组件

<template><div class="category"><h3>{{title}}</h3><slot :games="games">我是作用域插槽,在没有传结构式我才会显示该片段文字</slot></div>
</template>
<script>
export default {name: "Category",props: ["title"],data() {return {games: ["红警", "绿警", "蓝警", "紫警"]};}
};
</script>

二,配置代理

方式1:在vue.config.js中添加如下配置

    devServer:{proxy: "http://localhost:5000"}

注意:

优点:配置简单直接发请求给8080端口即可

缺点:不能配置多个代理且不灵活(若自己有资源,但是需要请求非前端资源,只能走自己已有的资源)

代理流程:发送请求👉开启代理👉如果前端有资源那么拿来就用,如果没有去请求资源

方式2:在vue.config.js中添加如下配置

  devServer: {proxy: {'/shanyu': {// 匹配所有以'shanyu'开头的请求路径target: 'http://localhost:5000',// 代理目标的基础路径pathRewrite: {'^/shanyu': '' // 将所有的前缀替换为空串再去服务器内擦护照该路径// ws和changeOrigin默认都为true// ws: true, // 用于支持websocket// changeOrigin: true // 用于控制请求头host的值},//changeOrigin设置为true时,服务器收到的请求头中的host为: localhost: 5000//changeOrigin设置为false时,服务器收到的请求头中的host为: localhost :8080}

changeOrigin一般都设置为false,因为服务器无论是否设置了某些不能请求其他端口的请求时,changeOrigin它也可以将自己变成所请求资源的服务器的相同用端口(简单来说就是,changeOrigin设置为false时,向哪台服务器发起请求,呈现的就是那台服务器的端口号)

点赞:您的赞赏是我前进的动力! 👍
收藏:您的支持我是创作的源泉! ⭐
评论:您的建议是我改进的良药! ✍
JavaScript专栏:小嘎鱼学JS
Vue专栏:小嘎鱼学Vue
山鱼的个人社区:欢迎大家加入我的个人社区—— 山鱼社区


http://www.ppmy.cn/news/20593.html

相关文章

k8s对接webdav存储

最开始想找一些webdav相关的csi实现&#xff0c;但是github上的几个repo要么前置条件太多&#xff0c;要么像是弃坑。只能通过最原始的方法挂载到目录下&#xff0c;然后通过前面的local-path-provisioner生成动态PVwebdav挂载这里使用群晖的webdav服务&#xff0c;默认为5005端…

pinia原理学习

Pinia 中文文档 pinia原理 上次写vue项目的时候&#xff0c;问别人还在用vuex。别人说不用了&#xff0c;改pinia。于是了解了一下pinia。它是一种全局状态管理工具&#xff0c;vue2/3都适用&#xff0c;api比vuex更精简&#xff0c;使用更舒服。了解完就找资料摹写一个pinia。…

计算机相关专业提升学历的解决方案(硕士研究生)

文章目录1、正规全日制硕士1.1 研究生入学考试1.2 硕士毕业要求2、继续教育&#xff08;非全日制&#xff09;2.1 在职研究生2.2 同等学力申硕3、海外硕士3.1 海外硕士申请3.2 中外合作项目1、正规全日制硕士 1.1 研究生入学考试 1、考试报名 官方网站&#xff1a;国家研究生…

YoLoV1~YoLoV3 SPP

截止到今日&#xff0c;差不多对深度学习有了一定了解了&#xff0c;从图像分类的各种神经网络再到YOLO系列的目标检测&#xff0c;一步一步的逐渐实现相应功能&#xff0c;但对于一些具体的代码细节、部分理论&#xff0c;后期可能还需要加强学习和理解。但是转眼也快开学了&a…

【开发工具 - 安装手册】BeyondCompare4 下载与安装+免费使用

1. 官网 Download Beyond Compare Free Trial 2. 下载 阿里云盘 &#xff08;不限速 - 推荐&#xff09;官网下载3. 安装&#xff08;无脑下一步&#xff09; 4.三种方法长期免费使用 方法一 修改初始化文件 C:\Users\Administrator\AppData\Roaming\BCompare\BCompare.ini…

k8s之namespace

写在前面 考虑这样的场景&#xff0c;现在有一个k8s集群&#xff0c;不同的技术部门都在使用&#xff0c;如java组&#xff0c;web组&#xff0c;c组等&#xff0c;这些不同的技术部门之间是彼此独立的&#xff0c;那么在使用的过程是不是会出现包括但不限于如下的问题呢&…

LeetCode 每日一题 2023/1/9-2023/1/15

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录1/9 1806. 还原排列的最少操作步数1/10 753. 破解保险箱1/11 2283. 判断一个数的数字计数是否等于数位的值1/12 1807. 替换字符串中的括号内容1/13 2287. 重排字符形成目标字…

【Linux】怎么理解进程

✍作者&#xff1a;阿润菜菜 &#x1f4d6;专栏&#xff1a;Liunx系统编程 本文通过冯诺依曼体系结构&#xff08;硬件部分&#xff09;和操作系统&#xff08;软件部分&#xff09;为基础来介绍我们应该如何理解进程&#xff0c;为后续的学习做铺垫。 本文目录一、预备知识1.建…