浅谈Vue使用Elementui修改默认的最快方法


Posted in Vue.js onDecember 05, 2020

相信大家都需要过,在Vue中使用Elementui的时候,遇到最多也最蛋疼的问题就是修改默认样式,接下来直奔主题;

// template
 <el-progress 
 :text-inside="true" 
 :stroke-width="26" 
 :percentage="70"
 ></el-progress>

默认样式

浅谈Vue使用Elementui修改默认的最快方法

方法1

1、找默认添加的类名

浅谈Vue使用Elementui修改默认的最快方法

2、去掉scoped,scoped是Vue是限制独立组件中的CSS样式不被溢出到全局使用!

// style
.el-progress-bar__inner{
 background: #000 ;
}
// 这两种酌情使用。
.el-progress-bar__inner{
 background: #000 !important;
}
// !important是css选择器中的属性,默认权重无线大!

总结:这种方法会生效,但是会影响到全局;

浅谈Vue使用Elementui修改默认的最快方法

方法2,

使用Vue中的深度作用域选择器! 这个符号哦 >>>

<style scoped>
>>> .el-progress-bar__inner{
 background: #000 ;
}
</style>

总结:使用Vue的深度选择器,就可以完美的解决!

浅谈Vue使用Elementui修改默认的最快方法

注意:有些像 Sass 之类的预处理器无法正确解析 >>>。

这种情况下你可以使用 /deep/ 或 ::v-deep 操作符取而代之——两者都是 >>> 的别名,同样可以正常工作。

给大家附上官网地址:https://vue-loader.vuejs.org/zh/guide/scoped-css.html#混用本地和全局样式

补充知识:Vue Element Upload组件自定义上传行为及值回填

问题

由于项目使用element-ui,然后upload默认上传方式不支持我们现有接口。参照了一下官方API及相关博客,解决了我现有问题。

解决方式

自定义上传:upload组件提供了一个http-request属性,官方给的描述是:覆盖默认的上传行为,可以自定义上传的实现

值的回填:upload组件提供了一个file-list属性,描述:上传的文件列表

#具体代码实现

自定义上传行为

这里使用图片上传作为实例

template部分

<el-upload
 action="https://up-z2.qbox.me"
 list-type="picture-card"
 :http-request="uploadImg"
 :on-success="uploadImgSuccess"
 :on-remove="handleRemove">
 <i class="el-icon-plus"></i>
</el-upload>

以上是template部分,我们实现了http-request, on-success, on-remove三个属性

script部分

methods: {
 uploadImg (f) {
  this.axios.get('./getToken').then((response) => {//获取token
   let param = new FormData(); //创建form对象
   param.append('file',f.file);//通过append向form对象添加数据
   param.append('token',response.data.token);//通过append向form对象添加数据
   param.append('key',response.data.key);//添加form表单中其他数据
   let config = {
    headers:{'Content-Type':'multipart/form-data'}
   }; //添加请求头
   this.axios.post(f.action,param,config)//上传图片
   .then(response=>{
    f.onSuccess(response.data)
   })
   .catch(({err}) => {
    f.onError()
   })  
  })
  .catch(() => {
   f.onError()
  })
 },
 uploadImgSuccess(response, file, fileList) {
  // 缓存接口调用所需的文件路径
  console.log('文件上传成功')
 },
 handleRemove(file, fileList) {
  // 更新缓存文件
  console.log('文件删除')
 }
}

值回填

同样以图片上传为例

template部分

<el-upload
  action="https://up-z2.qbox.me"
  list-type="picture-card"
  :http-request="uploadImg"
  :on-remove="handleRemove"
  :on-change="handleImgChange"
  :file-list="imgList">
  <i class="el-icon-plus"></i>
 </el-upload>

script部分

data() {
 return {
 imgList: [{url: '初始需回填的图片url', status: 'finished'}]
 }
},
methods: {
 uploadImg (f) {
   this.axios.get('./getToken').then((response) => {//获取token
     let param = new FormData(); //创建form对象
     param.append('file',f.file);//通过append向form对象添加数据
     param.append('token',response.data.token);//通过append向form对象添加数据
     param.append('key',response.data.key);//添加form表单中其他数据
     let config = {
      headers:{'Content-Type':'multipart/form-data'}
     }; //添加请求头
     this.axios.post(f.action,param,config)//上传图片
     .then(response=>{
      f.onSuccess(response.data)
     })
     .catch(({err}) => {
      f.onError()
     })  
    })
    .catch(() => {
     f.onError()
    })
   },
   handleImgChange (file, fileList) {// 这里可以打印file查看数据结构
    if (file.response) {//判断是否上传成功
     this.imgList.push({url: this.tools.cdn(file.response.key), status: 'finished'})//上传成功之后把值添加到imglist中
    }
 },
  handleRemove (file, fileList) {// 这里可以打印filelist查看数据结构
   this.imgList = fileList//删除某张图片时重新对imglist赋值
  }
}

写在最后

一直想把这个记下来,比较懒惰一看好久没有写博客了。由于是在我们工程里改的,暂时还没有写demo。如有问题,请大家指教

以上这篇浅谈Vue使用Elementui修改默认的最快方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Vue.js 相关文章推荐
vue 获取到数据但却渲染不到页面上的解决方法
Nov 19 Vue.js
使用vue编写h5公众号跳转小程序的实现代码
Nov 27 Vue.js
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
vue实现树状表格效果
Dec 29 Vue.js
详解Vue3.0 + TypeScript + Vite初体验
Feb 22 Vue.js
Vue SPA 首屏优化方案
Feb 26 Vue.js
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
vue实现在data里引入相对路径
Jun 05 Vue.js
vue css 相对路径导入问题级踩坑记录
Jun 05 Vue.js
vue如何在data中引入图片的正确路径
Jun 05 Vue.js
vue+element_ui上传文件,并传递额外参数操作
Dec 05 #Vue.js
解决vue下载后台传过来的乱码流的问题
Dec 05 #Vue.js
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 #Vue.js
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 #Vue.js
vue使用echarts图表自适应的几种解决方案
Dec 04 #Vue.js
vue-calendar-component 封装多日期选择组件的实例代码
Dec 04 #Vue.js
如何正确解决VuePress本地访问出现资源报错404的问题
Dec 03 #Vue.js
You might like
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
PHP容易忘记的知识点分享
2013/04/30 PHP
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
2014最热门的24个php类库汇总
2014/12/18 PHP
php格式化电话号码的方法
2015/04/24 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
JQuery toggle使用分析
2009/11/16 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
JS无缝滚动效果实现方法分析
2016/12/21 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
利用原生JS实现data方法示例代码
2019/05/28 Javascript
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
Jquery Fade用法详解
2020/11/06 jQuery
[01:25:38]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第一场 1月19日
2021/03/11 DOTA
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
利用Python为iOS10生成图标和截屏
2016/09/24 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
python os.path模块常用方法实例详解
2018/09/16 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
董事长职责范文
2013/11/08 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
家长学校工作方案
2014/05/07 职场文书
严以用权学习心得体会
2016/01/12 职场文书
pytorch交叉熵损失函数的weight参数的使用
2021/05/24 Python
Redis性能监控的实现
2021/07/09 Redis