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 相关文章推荐
JavaScript经典效果集锦
Jul 06 Javascript
禁止页面刷新让F5快捷键及右键都无效
Jan 22 Javascript
js确认删除对话框适用于a标签及submit
Jul 10 Javascript
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
Aug 12 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
Dec 31 Javascript
javascript作用域问题实例分析
Jul 13 Javascript
javascript设计模式之单体模式学习笔记
Feb 15 Javascript
SpringMVC简单整合Angular2的示例
Jul 31 Javascript
JS实现的3des+base64加密解密算法完整示例
May 18 Javascript
小程序云开发教程如何使用云函数实现点赞功能
May 18 Javascript
Vue.js中该如何自己维护路由跳转记录
May 19 Javascript
原生JavaScript实现拖动校验功能
Sep 29 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脚本数据库功能详解(中)
2006/10/09 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
2016/06/13 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
CSS常用网站布局实例
2008/04/03 Javascript
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
jquery ajax方式直接提交整个表单核心代码
2013/08/15 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
利用了jquery的ajax实现二级联互动菜单
2013/12/02 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
jQuery实现的自适应焦点图效果完整实例
2016/08/24 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
2016/12/27 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
python字典序问题实例
2014/09/26 Python
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
python监控键盘输入实例代码
2018/02/09 Python
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
h5实现获取用户地理定位的实例代码
2017/07/17 HTML / CSS
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
Topman美国官网:英国著名的国际平价时尚男装品牌
2017/12/22 全球购物
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
房地产开盘策划方案
2014/02/10 职场文书
投标承诺书范本
2014/03/27 职场文书
大学活动总结范文
2014/04/29 职场文书
感恩节寄语2015
2015/03/24 职场文书
复活读书笔记
2015/06/29 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
python如何读取.mtx文件
2021/04/22 Python