vue 出现data-v-xxx的原因及解决


Posted in Javascript onAugust 04, 2020

现象:

在Vue开发中,会遇到html被浏览器解析后,在标签中出现'data-v-xxxxx'标记,如下:

<div data-v-fcba8876 class="xxx"> aaa</div>

原因:

来看官方解释:

<style scoped>
 @media (min-width: 250px) {
  .list-container:hover {
   background: orange;
  }
 }
</style>

The optional scoped attribute automatically scopes this CSS to your component by adding a unique attribute (such as data-v-21e5b78) to elements and compiling .list-container:hover to something like .list-container[data-v-21e5b78]:hover.

本人理解:

这是在标记vue文件中css时使用scoped标记产生的,因为要保证各文件中的css不相互影响,给每个component都做了唯一的标记,所以每引入一个component就会出现一个新的'data-v-xxx'标记

补充知识:vue---获取元素额外生成的data-v-xxx

vue 出现data-v-xxx的原因及解决

需求描述:由于样式中使用了scoped,所以编译后标签对中生成data-v-xxx属性。在【.dialog_content】的div中 动态添加元素节点p和span时,也需要给元素节点添加data-v-xxx属性。由于data-v-xxx属性是会变化的,那如何获取它,添加在动态添加的元素节点中呢?本博客将给出解决方案。

【解决方法】

获取属性名【document.getElementById("dialog_submit").attributes[0].name】

设置属性【nodeP.setAttribute(dataV, "")】

var nodeP = document.createElement("p"),
nodeSpan = document.createElement("span");
// 获取data-v-xxxx的值
var dataV = document.getElementById("dialog_submit").attributes[0].name;
// 设置属性
nodeP.setAttribute(dataV, "");
nodeSpan.setAttribute(dataV, "");

【补充知识】

当 <style> 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。编译时将生成data-v-xxx属性,如下的“data-v-2bc3d899”就是因为加了scoped.

<style scoped>
.title {
 color:blue;
}
</style>
 
<template>
 <div class="title">hello</div>
</template>

上述代码被编译为:

<style>
.title[data-v-f3f3eg9] {
 color: blue;
}
</style>
 
<template>
 <div class="title" data-v-f3f3eg9>hello</div>
</template>

使用 scoped 后,父组件的样式将不会渗透到子组件中。不过一个子组件的根节点会同时受其父组件的 scoped CSS 和子组件的 scoped CSS 的影响。这样设计是为了让父组件可以从布局的角度出发,调整其子组件根元素的样式。

深度作用选择器:

如果希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,可以使用 >>> 操作符:

<style scoped>
.a >>> .b { /* ... */ }
</style>

上述代码被编译为:

.a[data-v-f3f3eg9] .b { /* ... */ }

以上这篇vue 出现data-v-xxx的原因及解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
添加到收藏夹代码(兼容几乎所有的浏览器)
Jan 09 Javascript
js文字滚动停顿效果代码
Jun 28 Javascript
jQuery中:selected选择器用法实例
Jan 04 Javascript
JS判断是否长按某一键的方法
Mar 02 Javascript
JS递归遍历对象获得Value值方法技巧
Jun 14 Javascript
jQuery 3.0十大新特性
Jul 06 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
Jul 13 Javascript
基于Vue.js实现tab滑块效果
Jul 23 Javascript
微信小程序实现topBar底部选择栏效果
Jul 20 Javascript
基于vue实现一个禅道主页拖拽效果
May 27 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
Nov 14 Javascript
小程序实现录音功能
Sep 22 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
Aug 04 #Javascript
vue 实现根据data中的属性值来设置不同的样式
Aug 04 #Javascript
解决Vue中使用keepAlive不缓存问题
Aug 04 #Javascript
vue根据条件不同显示不同按钮的操作
Aug 04 #Javascript
如何在Vue.JS中使用图标组件
Aug 04 #Javascript
如何构建 vue-ssr 项目的方法步骤
Aug 04 #Javascript
vue-quill-editor的使用及个性化定制操作
Aug 04 #Javascript
You might like
利用“多说”制作留言板、评论系统
2015/07/14 PHP
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
thinkjs之页面跳转同步异步操作
2017/02/05 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
2018/08/07 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
理解Python中的类与实例
2015/04/27 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
pandas将numpy数组写入到csv的实例
2018/07/04 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
python学习将数据写入文件并保存方法
2020/06/07 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
python编程的核心知识点总结
2021/02/08 Python
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
最新销售员个人自荐信
2013/09/21 职场文书
安全责任书范文
2014/03/12 职场文书
给校长的一封建议书
2014/03/12 职场文书
党员2014两会学习心得体会
2014/03/17 职场文书
社区网格化管理实施方案
2014/03/21 职场文书
党员对十八届四中全会的期盼思想汇报范文
2014/10/17 职场文书
信仰纪录片观后感
2015/06/08 职场文书
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
JS实现简单的九宫格抽奖
2022/06/28 Javascript