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 相关文章推荐
Jquery获得控件值的三种方法总结
Feb 13 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
Jun 15 Javascript
jQuery+ajax读取并解析XML文件的方法
Sep 09 Javascript
jQuery弹出遮罩层效果完整示例
Sep 13 Javascript
非常优秀的JS图片轮播插件Swiper的用法
Jan 03 Javascript
BootStrap fileinput.js文件上传组件实例代码
Feb 20 Javascript
前端开发之CSS原理详解
Mar 11 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
May 24 Javascript
jquery图片放大镜效果
Jun 23 jQuery
vue+element-ui动态生成多级表头的方法
Aug 28 Javascript
使用next.js开发网址缩短服务的方法
Jun 17 Javascript
分享几个JavaScript运算符的使用技巧
Apr 24 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
BBS(php &amp; mysql)完整版(八)
2006/10/09 PHP
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
PHP 字符串 小常识
2009/06/05 PHP
PHP COOKIE及时生效的方法介绍
2014/02/14 PHP
ThinkPHP连接数据库的方式汇总
2014/12/05 PHP
WordPress网站性能优化指南
2015/11/18 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
thinkphp项目如何自定义微信分享描述内容
2017/02/20 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
javascript网页随机点名实现过程解析
2019/10/15 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
Python中请使用isinstance()判断变量类型
2014/08/25 Python
Python中使用urllib2模块编写爬虫的简单上手示例
2016/01/20 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
python队列queue模块详解
2018/04/27 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
python 图像增强算法实现详解
2021/01/24 Python
P D PAOLA意大利官网:西班牙著名的珠宝首饰品牌
2019/09/24 全球购物
《童年的发现》教学反思
2014/02/14 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书