vue如何在style标签中使用data响应式数据?
文章目录
- 一、面临到的需求?
- 二、如何在css中使用变量?
- 三、vue如何在style标签中使用data响应式数据?
一、面临到的需求?
首先我们知道css对应是有伪类的,如:hover, :active 等等。
我们需要想的是如何获取到这个对应的dom节点的伪类然后将对应的伪类,通过js的方式进行变更呢?
我们要知道的是,此种如:hover是不引用元素的,而是引用任何满足样式表规则条件的元素。
我们直接通过获取dom节点,然后变更里面的样式是行不通的。
此时我们就需要用到一个api
CSSStyleDeclaration.setProperty()
官网给出的介绍
二、如何在css中使用变量?
首先我们得要清楚在css中使用变量是采用
–变量名称:内容;
如下
--activeColor: #efc20f;
那么我们换种角度去思考这个问题,上方对应的setProperty是不是也同样可以变更我们设置的变量呢?答案是可以的。
三、vue如何在style标签中使用data响应式数据?
这个时候其实我们就可以想到,既然css是可以使用变量的,并且这个变量,是可以通过setProperty这个api进行变更的。那么我们就可以采用$ref的方式获取节点,获取节点后,使用setProperty变更dom节点的css变量值,变量值变更对应视图重载,实现效果。
在这里的话我是设置了一个ref,对应的class也同样是如此
对应的在class中设置了一个变量(因为对应.tb_rate是父级节点,所以我们的子集节点根据作用域是可以找到对应我们设置的变量的)
这样我们在页面加载的时候其实也就获取到了对应的变量值,将对应的颜色也同样进行了变更。
当然如果我们需要监听变更这个颜色的话,那么我们也可以在watch中监听一下activecolor
这样每次父组件变更颜色的时候,对应的子组件数据也就会跟着变更了。
<div ref="tb_rate" class="tb_rate"><div class="tb_rate__star">测试demo</div></div>
mounted() {this.$refs.tb_rate.style.setProperty("--activeColor", this.activecolor);},watch: {activecolor() {this.$refs.tb_rate.style.setProperty("--activeColor", this.activecolor);},},
.tb_rate {--activeColor: #efc20f;cursor: default;
}
.tb_rate__star.hover {color: var(--activeColor);
}
vue如何在style标签中使用data响应式数据?相关推荐
- vue项目 在style标签中引入css,less,sass的方法
vue项目 style标签引入 less sass less和sass需要安装相应的依赖 package.json 中加上 并再次npm install 重启项目 "less": ...
- vue 如何在 style 标签里使用变量(数据)
参考资料 SFC CSS Features | Vue.js 在 style 中使用 data 变量 options 方式: <template><div class="t ...
- 如何优雅的在 vue 中使用 非响应式对象_一篇文章上手Vue3中新增的API
1. 初始化项目 // ① npm i -g @vue/cli // ② vue create my-project // ③ npm install @vue/composition-api -S/ ...
- vue 在style标签中引入js变量控制样式
START 如果希望元素的样式根据js代码去控制,常见的办法呢,是在元素的style属性绑定变量即可 例如 <h3 :style="{ color: colorList[0] }&qu ...
- 在style标签中,vue项目引入style文件,外部css文件
在style标签中,vue项目引入style文件,外部css文件 一.css是什么? 二.使用步骤 1.使用style标签引入 2.在style标签内使用@import导入 总结 一.css是什么? ...
- amp 显示成转义字符 in html,如何在HTML标签中转换转义字符?(How to convert escape characters in HTML tags?)...
如何在HTML标签中转换转义字符?(How to convert escape characters in HTML tags?) 我们如何直接将"\u003chtml\u003e" ...
- style标签中的几个属性
1.vue中使用css通常采用如下形式 <style lang="scss" scoped></style> 2.lang="scss" ...
- wps excel查找不定位_【WPS神技能】如何在WPSExcel表格中批量查找两列数据的不同?...
当我们需要在Excel表格中快速查找两列数据的不同时,如下图所示:如何快速找出"一月业绩"和"二月业绩"的不同. 在office-Excel表格中,我们可以通过 ...
- android 工具栏沉浸 下拉,如何在Android应用中实现一个沉浸式状态栏效果
如何在Android应用中实现一个沉浸式状态栏效果 发布时间:2020-12-08 17:04:42 来源:亿速云 阅读:151 作者:Leah 这篇文章将为大家详细讲解有关如何在Android应用中 ...
最新文章
- MySQL忘记root密码不重启mysqld的方法
- LeetCode LCP 06. 拿硬币
- C++ rand()函数和srand()函数
- 按下组合键 可以迅速锁定计算机,Win7锁定计算机快捷键是什么?Win7使用锁定计算机快捷键的方法...
- 微信支付 SDK 惊爆漏洞:黑客可 0 元购买任意商品
- jQuery1.11源码分析(8)-----jQuery调用Sizzle引擎的相关API
- POJ 2104 K-th Number (区间第k大)
- 微信小程序 java高校科研管理系统
- 谈谈创业这点事(8)
- 高中计算机考试解析,2019下半年教师资格面试考试高中信息技术试题分析
- mysql (1) 聚集索引和非聚集索引
- 新知实验室基于腾讯云实时音视频WEB端实验
- 关于USB鼠标驱动部分及问题解决
- 网易蜗牛读书产品分析报告
- JDK-8274609 JEP 421: Deprecate Finalization for Removal
- jspdf添加宋体_JSPDF支持中文(思源黑体)采坑之旅,JSPDF中文字体乱码解决方案...
- Django 搜索结果分页的实现 以及点击下一页搜索条件丢失可能的原因分析
- C语言 - 运输公司对用户计算运输费用。路程(s km)越远,每吨·千米运费越低。(用switch实现)
- 高清智能安防系统旅游景区解决方案分析
- 论文中英文摘要、目录、每章的页眉不同,页脚处的页码自动连续设置方法