在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 相关文章推荐
关于可运行代码无法正常执行的使用说明
May 13 Javascript
Chosen 基于jquery的选择框插件使用方法
May 30 Javascript
jquery 实现上下滚动效果示例代码
Aug 09 Javascript
Jquery通过JSON字符串创建JSON对象
Aug 24 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
Mar 05 Javascript
javascript实现tab切换的四种方法
Nov 05 Javascript
微信小程序 Toast自定义实例详解
Jan 20 Javascript
基于webpack.config.js 参数详解
Mar 20 Javascript
说说node中的可读流和可写流的区别
Jun 01 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
Dec 24 Javascript
微信小程序关键字变色实现代码实例
Dec 13 Javascript
jquery实现有过渡效果的tab切换
Jul 17 jQuery
深入分析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
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
PHP中异常处理的一些方法整理
2015/07/03 PHP
PHP递归创建多级目录
2015/11/05 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
百度地图给map添加右键菜单(判断是否为marker)
2016/03/04 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
微信小程序 实例开发总结
2017/04/26 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
vue cli4.0项目引入typescript的方法
2020/07/17 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
简单实现python爬虫功能
2015/12/31 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
基于Python函数和变量名解析
2019/07/19 Python
Python传递参数的多种方式(小结)
2019/09/18 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
Django-imagekit的使用详解
2020/07/06 Python
自我鉴定的范文
2013/10/03 职场文书
致200米运动员广播稿
2014/02/06 职场文书
教师自我鉴定范文
2014/03/20 职场文书
写求职信要注意什么问题
2014/04/12 职场文书
学生保证书范文
2014/04/28 职场文书
治安消防安全责任书
2014/07/23 职场文书
应聘教师求职信范文
2015/03/20 职场文书
山楂树之恋观后感
2015/06/11 职场文书
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL