在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 相关文章推荐
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
Apr 15 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
Mar 06 Javascript
js脚本实现数据去重
Nov 27 Javascript
JavaScript SHA1加密算法实现详细代码
Oct 06 Javascript
Zabbix添加Node.js监控的方法
Oct 20 Javascript
node.js中实现kindEditor图片上传功能的方法教程
Apr 26 Javascript
深入浅析Vue不同场景下组件间的数据交流
Aug 15 Javascript
浅谈在Vue-cli里基于axios封装复用请求
Nov 06 Javascript
Vue 使用formData方式向后台发送数据的实现
Apr 14 Javascript
基于Layui自定义模块的使用方法详解
Sep 14 Javascript
JS实现判断移动端PC端功能
Feb 21 Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
Nov 12 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木马webshell扫描器代码
2012/01/25 PHP
php解决约瑟夫环示例
2014/04/09 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
range 标准化之获取
2011/08/28 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
深入理解Vue keep-alive及实践总结
2019/08/21 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
2020/09/21 Javascript
简单讲解Python中的闭包
2015/08/11 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
python从内存地址上加载python对象过程详解
2020/01/08 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
python获取本周、上周、本月、上月及本季的时间代码实例
2020/09/08 Python
python 监控服务器是否有人远程登录(详细思路+代码)
2020/12/18 Python
英国行业制服供应商:Alexandra
2019/09/14 全球购物
给女朋友的道歉信
2014/01/10 职场文书
高三体育教学反思
2014/01/29 职场文书
元旦寄语大全
2014/04/10 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
工作证明英文模板
2014/10/21 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
目标责任书格式范文
2015/05/11 职场文书
小学科学课教学反思
2016/02/23 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
pytorch通过训练结果的复现设置随机种子
2021/06/01 Python
python flask开发的简单基金查询工具
2021/06/02 Python