在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 跨域访问解决方案
Feb 14 Javascript
js和php如何获取当前url的内容
Sep 22 Javascript
js捕获鼠标滚轮事件代码
Dec 16 Javascript
jQuery插件实现多级联动菜单效果
Dec 01 Javascript
整理一下常见的IE错误
Nov 18 Javascript
vue.js指令v-model使用方法
Mar 20 Javascript
vue resource post请求时遇到的坑
Oct 19 Javascript
全面介绍vue 全家桶和项目实例
Dec 27 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
Feb 22 Javascript
vue拖拽组件使用方法详解
Dec 01 Javascript
angular 实现下拉列表组件的示例代码
Mar 09 Javascript
JS实现动态无缝轮播
Jan 11 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 Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
没有document.getElementByName方法
2013/08/19 Javascript
利用js动态添加删除table行的示例代码
2013/12/16 Javascript
js中document.write的那点事
2014/12/12 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
纯js三维数组实现三级联动效果
2017/02/07 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
node通过express搭建自己的服务器
2017/09/30 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
python traceback捕获并打印异常的方法
2018/08/31 Python
对python requests的content和text方法的区别详解
2018/10/11 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
Python 内置变量和函数的查看及说明介绍
2019/12/25 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
建筑专业自荐信
2013/10/18 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
《青山处处埋忠骨》教学反思
2014/04/22 职场文书
学生上课看漫画的检讨书
2014/09/26 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
积极心理学课程心得体会
2016/01/22 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL
MySQL池化框架学习接池自定义
2022/07/23 MySQL