浅谈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 的 v-model用法实例
Nov 23 Vue.js
Vue开发中常见的套路和技巧总结
Nov 24 Vue.js
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
如何正确解决VuePress本地访问出现资源报错404的问题
Dec 03 Vue.js
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
聊聊vue 中的v-on参数问题
Jan 29 Vue.js
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
Mar 01 Vue.js
vue实现拖拽进度条
Mar 01 Vue.js
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
Vue+Element UI实现概要小弹窗的全过程
May 30 Vue.js
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
Vue.Draggable实现交换位置
Apr 07 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字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
PHP+Mysql基于事务处理实现转账功能的方法
2015/07/08 PHP
js中一个函数获取另一个函数返回值问题探讨
2013/11/21 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
js实现点击每个li节点,都弹出其文本值及修改
2016/12/15 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
微信小程序新手教程之页面打开数量限制
2019/03/03 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
Python简单实现enum功能的方法
2016/04/25 Python
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
python深度优先搜索和广度优先搜索
2018/02/07 Python
Python延时操作实现方法示例
2018/08/14 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
如何基于python生成list的所有的子集
2019/11/11 Python
Python如何基于Tesseract实现识别文字功能
2020/06/05 Python
英国电器零售商:PRC Direct
2018/06/21 全球购物
国际象棋商店:The Chess Store
2018/07/09 全球购物
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
医学毕业生自荐信
2013/10/11 职场文书
高中生家长寄语大全
2014/04/03 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
承诺书范文
2014/06/03 职场文书
九一八事变演讲稿
2014/09/05 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
工资证明格式模板
2015/06/12 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL
pandas中pd.groupby()的用法详解
2022/06/16 Python