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 相关文章推荐
bcastr2.0 通用的图片浏览器
Nov 22 Javascript
完美解决AJAX跨域问题
Nov 01 Javascript
JQuery伸缩导航练习示例
Nov 13 Javascript
jQuery实现底部浮动窗口效果
Sep 07 Javascript
微信小程序 UI布局常用技巧整理总结
Dec 05 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
Jan 19 Javascript
jQuery实现定时隐藏对话框的方法分析
Feb 12 jQuery
layui表格checkbox选择全选样式及功能的实例
Mar 07 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
Apr 15 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
Jun 04 Javascript
Element-ui DatePicker显示周数的方法示例
Jul 19 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
Aug 07 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
解析在PHP中使用全局变量的几种方法
2013/06/24 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
php实现微信发红包
2015/12/05 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
JS控件autocomplete 0.11演示及下载 1月5日已更新
2007/01/09 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
js快速排序的实现代码
2013/12/08 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
整理一下常见的IE错误
2016/11/18 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
JS数组操作中的经典算法实例讲解
2017/07/26 Javascript
Vue.js用法详解
2017/11/13 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
vue中get请求如何传递数组参数的方法示例
2019/11/08 Javascript
Python 加密的实例详解
2017/10/09 Python
python实现简单的单变量线性回归方法
2018/11/08 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
python如何写try语句
2020/07/14 Python
python字典key不能是可以是啥类型
2020/08/04 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
工程专业应届生求职信
2014/02/19 职场文书
中专生毕业个人鉴定
2014/02/26 职场文书
消防安全宣传口号
2014/06/10 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
郭明义观后感
2015/06/08 职场文书
校园安全学习心得体会
2016/01/18 职场文书
python实现求纯色彩图像的边框
2021/04/08 Python
PyMongo 查询数据的实现
2021/06/28 Python