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 相关文章推荐
如何实现iframe(嵌入式帧)的自适应高度
Jul 26 Javascript
date.parse在IE和FF中的区别
Jul 29 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
Sep 27 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
Aug 20 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
Dec 07 Javascript
深入理解vue.js中的v-if和v-show
Jun 22 Javascript
基于jQuery实现无缝轮播与左右点击效果
May 13 jQuery
纯js封装的ajax功能函数与用法示例
May 14 Javascript
浅谈vue项目打包优化策略
Sep 29 Javascript
在Vue中使用icon 字体图标的方法
Jun 14 Javascript
Vue动态生成表格的行和列
Jul 18 Javascript
layui实现鼠标移动到单元格上显示数据的方法
Sep 11 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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
解析php二分法查找数组是否包含某一元素
2013/05/23 PHP
完美解决PHP中的Cannot modify header information 问题
2013/08/12 PHP
PHP中的事务使用实例
2015/05/26 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
2015/11/24 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
Javascript Web Worker使用过程解析
2020/03/16 Javascript
Python中super关键字用法实例分析
2015/05/28 Python
python开发中range()函数用法实例分析
2015/11/12 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
神经网络理论基础及Python实现详解
2017/12/15 Python
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
Python实现的简单计算器功能详解
2018/08/25 Python
python实现邮件自动发送
2019/08/10 Python
python xlwt如何设置单元格的自定义背景颜色
2019/09/03 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
Python3实现飞机大战游戏
2020/04/24 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
linux面试题参考答案(4)
2014/09/21 面试题
高职教师岗位职责
2013/12/24 职场文书
公司同意接收函
2014/01/13 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书
组织生活会发言材料
2014/12/15 职场文书
重阳节慰问信
2015/02/15 职场文书
2015年库房工作总结
2015/04/30 职场文书
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS
MySQL新手入门进阶语句汇总
2022/09/23 MySQL