在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 相关文章推荐
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
Feb 07 Javascript
基于jquery的simpleValidate简易验证插件
Jan 31 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
Aug 24 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
Feb 19 Javascript
深入理解JQuery中的事件与动画
May 18 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
Jun 01 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
Oct 29 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
Mar 08 Javascript
使用BootStrap实现标签切换原理解析
Mar 14 Javascript
react.js使用webpack搭配环境的入门教程
Aug 14 Javascript
使用webpack打包koa2 框架app
Feb 02 Javascript
详解JS浏览器事件循环机制
Mar 27 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实现统计邮件大小的方法
2013/08/06 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
PHP 断点续传实例详解
2017/11/11 PHP
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
js面向对象编程之如何实现方法重载
2014/07/02 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
使用jQuery.Pin垂直滚动时固定导航
2017/05/24 jQuery
VUE中的无限循环代码解析
2017/09/22 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
JavaScript事件对象event用法分析
2018/07/27 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
微信小程序蓝牙连接小票打印机实例代码详解
2019/06/03 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
2020/12/02 Vue.js
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
Python设计模式之门面模式简单示例
2018/01/09 Python
python简单商城购物车实例代码
2018/03/15 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
使用HTML5 Canvas API中的clip()方法裁剪区域图像
2016/03/25 HTML / CSS
美国最大网上鞋店:Zappos
2016/07/25 全球购物
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
建筑施工实习自我鉴定
2013/09/19 职场文书
自主招生自荐信指南
2014/02/04 职场文书
葬礼司仪主持词
2014/03/31 职场文书
小学生运动会报道稿
2014/09/12 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
创卫工作总结2015
2015/04/22 职场文书
mysql查找连续出现n次以上的数字
2022/05/11 MySQL