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的输入框无值自动显示指定数据的实现代码
Jan 24 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
Feb 12 Javascript
require、backbone等重构手机图片查看器
Nov 17 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
Sep 14 Javascript
详解node+express+ejs+bootstrap构建项目
Sep 27 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
Oct 27 Javascript
解决select2在bootstrap modal中不能正常使用的问题
Aug 09 Javascript
ES6中Symbol、Set和Map用法详解
Aug 20 Javascript
使用layer模态框给新页面传值的方法
Sep 27 Javascript
vue项目中监听手机物理返回键的实现
Jan 18 Javascript
记一次用ts+vuecli4重构项目的实现
May 21 Javascript
Javascript原型链及instanceof原理详解
May 25 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 Http_Template_IT类库进行模板替换
2009/03/19 PHP
php fsockopen中多线程问题的解决办法[翻译]
2011/11/09 PHP
教你如何使用php session
2013/10/28 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
优秀js开源框架-jQuery使用手册(1)
2007/03/10 Javascript
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
图片延迟加载的实现代码(模仿懒惰)
2013/03/29 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
vue短信验证性能优化如何写入localstorage中
2018/04/25 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
Python中的变量和作用域详解
2016/07/13 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
通过shell+python实现企业微信预警
2019/03/07 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
python爬虫学习笔记之pyquery模块基本用法详解
2020/04/09 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
考核评语大全
2014/04/29 职场文书
2015年行政执法工作总结
2015/05/23 职场文书
2015年除四害工作总结
2015/07/23 职场文书
Python基础之元类详解
2021/04/29 Python
详解Redis主从复制实践
2021/05/19 Redis
利用Python多线程实现图片下载器
2022/03/25 Python