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

c 网站开发流程图十大接单平台

c 网站开发流程图,十大接单平台,岳阳新网网站建设有限公司,企业网站的建立流程的第一步是1. 前言 本次我们主要结合一些案例研究一下vue的插槽中样式污染问题。在这篇文章中&#xff0c;我们主要关注以下两点: 父组件的样式是否会影响子组件的样式&#xff1f;子组件的样式是否会影响父组件定义的插槽部分的样式&#xff1f; 2. 准备代码 2.1 父组件代码 <te…

1. 前言

本次我们主要结合一些案例研究一下vue的插槽中样式污染问题。在这篇文章中,我们主要关注以下两点:

  • 父组件的样式是否会影响子组件的样式?
  • 子组件的样式是否会影响父组件定义的插槽部分的样式?

2. 准备代码

2.1 父组件代码

<template><div class="wrap"><div>parent-root</div><A><div slot-parent><div class="container">parent_content</div></div></A></div>
</template>
<script lang=ts setup>
import A from './A.vue';
</script>
<style lang=scss scoped>
.wrap{width: 400px;height: 400px;background-color: lightgreen;color: red;
}
.container{background-color: lightcoral;
}
</style>

2.2 子组件代码

<template><div class="wrap" child><div>child-header</div><slot></slot><div class="container">child-footer</div></div>
</template>
<script lang=ts setup>
</script>
<style lang=scss scoped>
.container{width: 100px;height: 100px;background-color: lightblue;
}
.wrap{border: 1px solid black;
}
</style>

2.3 最终编译的代码

在这里插入图片描述
通过上面的代码,我们得出几个结论:

  • 子组件的顶级标签会继承父组件的文件指纹。
  • 子组件的插槽(父级定义的插槽代码)的顶级标签不会继承子组件的文件指纹。

3. 问题分析

3.1 父组件是否污染子组件问题

通过上面的分析,我们知道父组件的文件指纹会继承到子组件的顶级标签上,也就是说父组件的样式有可能会影响子组件的样式。
比如,我们在父组件中定义了wrap的样式:

.wrap{width: 400px;height: 400px;background-color: lightgreen;color: red;
}

那么他生成的代码如下:
在这里插入图片描述
在这里插入图片描述
此时,我们发现在父组件定义的wrap样式在子组件的顶级标签仍然起作用。此时,就会污染子组件。

目前我还没有比较好的解决方案,只能在实际开发中对于类名的命名尽量避免相同。

3.2 子组件是否会污染插槽中的样式

通过上面的分析,我们知道插槽中的html片段并不会携带子组件的文件指纹。由于在子组件定义的样式都会携带子组件的文件指纹,所以子组件定义的样式并不会影响插槽中html片段的样式。
当然,这个假定也都是在不使用v-deep的前提下生效。如果掺杂v-deep呢?

3.3 v-deep下子组件插槽样式的污染情况

父组件代码

<template><div class="wrap"><div>parent-root</div><A><div slot-parent><div class="container">parent_content</div></div></A></div>
</template>
<script lang=ts setup>
import A from './A.vue';
</script>
<style lang=scss scoped>
.wrap{width: 400px;height: 400px;background-color: lightgreen;color: red;
}
.container{background-color: lightcoral;
}
</style>

子组件代码

<template><div class="wrap" child><div>child-header</div><slot></slot><div class="container">child-footer</div></div>
</template>
<script lang=ts setup>
</script>
<style lang=scss scoped>
.container{width: 100px;height: 100px;background-color: lightblue;
}
.wrap{border: 1px solid black;::v-deep .container{border: 5px dashed lightsalmon;}
}
</style>

在这里插入图片描述
通过上面分析的代码,我们发现parent_content所在的标签和child-footer所在的标签都生效了,也就是说子组件的样式污染了父组件的标签。
这一点在开发中要注意,要慎重使用v-deep,不然会产生难以预料的结果。这里有可能有人会想,在最后加一个v-deep就行了呗。
而实际事与愿违,因为对于多个v-deep,vue只能识别出第一个,后面的会按照样式名为v-deep进行渲染。

.wrap{border: 1px solid black;::v-deep .container::v-deep{border: 5px dashed lightsalmon;}
}

在这里插入图片描述

http://www.ds6.com.cn/news/122858.html

相关文章:

  • 做动态网站用哪个程序软件比较简单?江西网络推广seo
  • 深圳最大的软件开发公司安卓优化大师hd
  • 发票商品名称网站建设网络营销平台有哪些?
  • 编程项目实例网站电商推广平台有哪些
  • 怎么把wordpress怎样给自己的网站做优化
  • 乌鲁木齐电商网站建设网络营销的作用和意义
  • 国家职业证书查询网入口seo搜索优化费用
  • 做地理题的网站seo技巧seo排名优化
  • 网站外包公司该如何运营全网品牌推广
  • 做网站需要用什么开发软件济宁百度推广价格
  • 上海 教育网站建设百度收录提交入口网址
  • 外贸网站优化排名网站友情链接检测
  • 深圳盐田建设交易中心网站网站推广在哪好
  • 国内炫酷网站设计2024年将爆发新瘟疫
  • 网站签到的作用系统优化方法
  • 动漫设计中专学校哈尔滨seo优化培训
  • 做立体字的网站最好看免费观看高清大全
  • wordpress网站管理子域名网址查询
  • 工信部网站备案b2b电子商务网站
  • 网站后台上传图片脚本错误b2b平台
  • 建设部网站哪里可以报名考监理员百度快速seo
  • 域名是网站吗网站安全检测
  • 小型网站开发2024年新冠疫情最新消息今天
  • 基于ssm框架的网站开发论文产品推广软文300字
  • 泸州网站建设沈阳seo建站
  • 网站制作毕业设计建站快车
  • 取名网站怎么做推广服务商
  • 网站编辑心得体会湖南发展最新消息公告
  • 滚动视觉差网站长沙百度公司
  • 广州企业建站 网络服务百度app手机版