在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 相关文章推荐
js tab效果的实现代码
Dec 26 Javascript
javascript学习笔记(五) Array 数组类型介绍
Jun 19 Javascript
javascript几个易错点记录
Nov 26 Javascript
JavaScript实现的encode64加密算法实例分析
Apr 15 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
Jan 07 Javascript
通过扫描二维码打开app的实现代码
Nov 10 Javascript
js仿QQ邮箱收件人选择与搜索功能
Feb 10 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
Jul 11 Javascript
vue实现点击图片放大效果
Aug 15 Javascript
jQuery实现定时隐藏对话框的方法分析
Feb 12 jQuery
微信小程序使用gitee进行版本管理
Sep 20 Javascript
JavaScript中的一些实用小技巧总结
Apr 07 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的安全
2006/10/09 PHP
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
使用array_map简单搞定PHP删除文件、删除目录
2014/10/29 PHP
ThinkPHP中处理表单中的注意事项
2014/11/22 PHP
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
JS计算网页停留时间代码
2014/04/28 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
微信小程序实现拖拽功能
2019/09/26 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
python写入并获取剪切板内容的实例
2018/05/31 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
Uber Eats台湾:寻找附近提供送餐服务的餐厅
2018/05/07 全球购物
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
2016/04/28 面试题
大学生求职自荐信
2013/12/12 职场文书
基层干部十八大感言
2014/01/19 职场文书
中国入世承诺
2014/04/01 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
先进工作者个人总结
2015/02/15 职场文书
红色影片观后感
2015/06/18 职场文书
深入讲解数据库中Decimal类型的使用以及实现方法
2022/02/15 MySQL