在VUE style中使用data中的变量的方法


Posted in Javascript onJune 19, 2020

最近项目中的公共组件,在复用的时候,针对不同的场景,需要不断变更CSS里样式的值,而且已经有了全局的公共组件样式了

如果用vue传统的动态绑定class和style的方式去修改样式(文末会提到),需要额外写很多变量和模块class,那如果我的样式的值,可以从父组件,传到子组件,子组件根据传入值去渲染对应样式的值,其实就是要再style中使用data和props中的变量,这要怎么做呢?

其实很简单,只需要三步,大家来看:

1、HTML结构

<Upload

   ref="upload"

   :show-upload-list="false"

   :before-upload="handleBeforeUpload"

   :disabled="disabled"

   :max-size="maxSize"

   action
>

2、作用区域范围内设置“CSS变量”

<style lang="less" scoped>
.info-img-wrap {

 --textAlignPosition: center;

 /deep/ .ivu-upload {

  text-align: var(--textAlignPosition);

 }

}
<style/>

3、在JS中通过setProperty()方法修改“--textAlignPosition”的值,从而间接改变对应子元素的(text-align)文本对齐方式

mounted() {

   this.$nextTick(function () {

    this.$refs.upload.$el.style.setProperty(

     '--textAlignPosition',

     this.textAlign

    );

   });

}

这要就完成了。

下面再复习一下vue中修改样式还有另外两种方法,1是动态修改class,2是动态修改style

1、vue中可以通过对象语法和数组语法来修改class

对象语法

html

<div v-bind:class="{ 'active': isActive, 'text-danger': hasError }"></div>

js

data: {

 isActive: false,

 hasError: true

}

数组语法

html

<div v-bind:class="\[isActive ? activeClass : '', errorClass\]"></div>

js

data: {

 isActive: false,

 hasError: true,

 activeClass: 'active',

 errorClass: 'text-danger'
}

只需要动态改变isActive和hasError的值,就可以实现div的绑定不同的class和去掉绑定

2、vue中可以通过对象语法和数组语法来修改style

对象语法

html

<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>

js

data: {

 activeColor: 'red',

 fontSize: 30

}

数组语法

html

<div v-bind:style="\[styleColor, styleSize\]"></div>

js

data: {

 styleColor: {

   color: 'red'

  },

 styleSize:{

   fontSize:'23px'

 }

}

只要改变data中的变量styleColor和styleSize,就可以动态修改div的style了。

到此这篇关于在VUE style中使用data中的变量的方法的文章就介绍到这了,更多相关VUE style使用data变量内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript中的关于类型转换的性能优化
Dec 14 Javascript
js onload处理html页面加载之后的事件
Oct 30 Javascript
JavaScript中标识符提升问题
Jun 11 Javascript
JS实现隔行换色的表格排序
Mar 27 Javascript
d3.js实现立体柱图的方法详解
Apr 28 Javascript
JavaScript操作文件_动力节点Java学院整理
Jun 30 Javascript
vue.js实现只弹一次弹框
Jan 29 Javascript
webpack之devtool详解
Feb 10 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
Aug 07 Javascript
微信小程序 如何保持登录状态
Aug 16 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
Apr 14 Javascript
Js类的构建与继承案例详解
Sep 15 Javascript
深入分析JavaScript 事件循环(Event Loop)
Jun 19 #Javascript
原生JS实现微信通讯录
Jun 18 #Javascript
vue+element-ui表格封装tag标签使用插槽
Jun 18 #Javascript
js实现ajax的用户简单登入功能
Jun 18 #Javascript
JS实现躲避粒子小游戏
Jun 18 #Javascript
html-webpack-plugin修改页面的title的方法
Jun 18 #Javascript
vue实现购物车结算功能
Jun 18 #Javascript
You might like
php 数学运算验证码实现代码
2009/10/11 PHP
php数组分页实现方法
2016/04/30 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
让你的PHP,APACHE,NGINX支持大文件上传
2021/03/09 PHP
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
2017/05/17 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
JavaScript模块详解
2017/12/18 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
python使用tkinter实现简单计算器
2018/01/30 Python
django rest framework 自定义返回方式
2020/07/12 Python
使用Python实现音频双通道分离
2020/12/25 Python
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
工商学院毕业生自荐信
2013/11/12 职场文书
党员个人思想汇报
2013/12/28 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
“学雷锋活动月”总结
2014/03/09 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
交通安全宣传标语(100条)
2019/08/22 职场文书
比较几种Redis集群方案
2021/06/21 Redis
教你nginx跳转配置的四种方式
2022/07/07 Servers