个人碰到的前端问题总结及解决方法1

个人碰到的前端问题总结及解决方法1

1、如何判断内容是否超出容器宽度或高度?

解决方法:
let temp = document.getElementById("test")
     for (let i in temp) {
      let cWidth = temp.clientWidth;
      let sWidth = temp.scrollWidth;
      if (sWidth > cWidth) { //超过
        console.log("超出")
      } else {
        console.log("不超出")
      }
    }

参考链接:https://blog.csdn.net/weixin_40532650/article/details/111982387

2、如何使用jQuery隐藏元素?

方法一:
$('#id').css('display','none');
$('#id').css('display','block');

方法二:
$('#id').hide();
$('#id').show();

方法三:
$("#div1").attr("display","block"); 
$("#div1").attr("display","none"); 

参考链接:https://blog.csdn.net/baidu_39812199/article/details/85340511

3、如何实时监听方法?(想实现实时监听浏览器窗口宽度是否变化,以便动态展示信息)

方法一:
window.addEventListener("resize", this.judgeEllipsis);

方法二:
window.onresize = function(){
    changeMargin();
};

参考链接:
https://www.w3school.com.cn/js/js_htmldom_eventlistener.asp
https://blog.csdn.net/weixin_39943370/article/details/117788623

4、字符串区分中文和英文?

解决方法:
var realLength = 0
  var str=$(id).text().trim()
  let len = $(id).text().trim().length
  var charCode = -1
  for (var j = 0; j < len; j++) {
    charCode = str.charCodeAt(j);
    if (charCode >= 0 && charCode <= 128) realLength += 1;
    else realLength += 2;
}

参考链接:https://blog.csdn.net/aliven1/article/details/96971850

5、element的加载动画?

const loading = this.$loading({
    lock: true,
    text: '正在提交中,请稍候',
	spinner: 'el-icon-loading',
    background: 'rgba(0, 0, 0, 0.7)'
});
loading.close()

参考链接:[官网][1]

6、本地和服务器上传样式不一致?

首先vue项目在index.html加上下面4行
<meta http-equiv="X-UA-Compatible" content="IE=edge" >

样式不一致注意事项:
一般本地和服务器样式不一致是因为样式加载顺序导致,想修改可以自己去比对服务器和本地的区别,然后再修改本地的样式以达到样式正确

原因:
1.在组件的样式中记得未添加 'scoped' 导致全局污染
2.main.js中加载css顺序,在样式表文件中,越靠后的优先级越高。
3.库样式可能是动态js控制  
 
解决方法:
1.组件内的样式没有生效,可能是被第三方组件样式覆盖了,main.js中router放在最后引入,就可以实现组件样式在第三方样式之后渲染。 
 例如:
 // styles
 import '@/assets/scss/core/reset.scss';
 import '@/assets/scss/skin/index.scss';
 import router from './router';
2.在覆盖样式的css中增加对应样式的权重  
内联样式 > ID选择器 > 类,属性,伪类 选择器 > 元素标签,伪元素 选择器
 a.添加important
 b.对应的样式添加多一级名字
 例如:
    库样式:li{background:#fff;background:#1111}
    覆盖样式: ul li {xxxxx}

参考链接:https://blog.csdn.net/weixin_42091247/article/details/118400245

7、如何解决element表格顺序错乱?

解决方法:在元素上加key值

参考链接:https://blog.csdn.net/qq_15576765/article/details/84141391

8、如何判断对象是否为{}(空对象,没有属性和属性值)?

方法:
JSON.stringify(data) === '{}'
Object.keys(object).length === 0

参考链接:
https://www.jianshu.com/p/f5bf6fdeaed6
https://element.eleme.cn/#/zh-CN/component/loading

9、如何将后端返回的数据根据内容换行?

解决方法:将返回的数据里的特殊字符替换成换行符"/n",或者使用pre标签

参考链接:
https://blog.csdn.net/m0_37616866/article/details/118857260
https://www.cnblogs.com/linxing/p/11082581.html

10、路由跳转传对象,页面刷新后,对象数据获取错误?

解决办法:
let parObj = JSON.stringify(obj)
// 路由跳转
this.$router.push({
   path:'/detail',
   query:{
       obj:parObj
   }
})
// 详情页获取参数
JSON.parse(this.$route.query.obj)

参考链接:https://blog.csdn.net/qq_41877050/article/details/122936868

11、如何使element表单和表格共用校验?

方法一:
<el-form :rules='rules'  ...>
<el-form-item :prop=" 'tableData.' + scope.$index + '.name' " :rules='rules.name'>

data(){
	return {
    	rules: {
	        name: [
	          { required: true, message: '名字不能为空', trigger: 'blur' }
	        ]
	      }
    }
}
方法二:在el-form-item上直接写rule的详细内容

<el-form-item :prop=" 'tableData.' + scope.$index + '.name' " :rules="{ required: true, message: '名字不能为空', trigger: 'blur' }">

参考链接:https://blog.csdn.net/qq_31126175/article/details/97265338

12、表单验证报Cannot read property ‘validate’ of undefined错误

解决办法:
注意:
 1. :model里面的单词,要与ref一样 :rules是验证用的不用改   
 2. v-model=里面也需要用valForm,比如valForm.name来取值 
 3. 提交按钮绑定click: <el-button   
    type="primary" @click="submitEdit('valForm')">确 定</el-button>   
    注意,不能有空格

参考链接:https://www.jianshu.com/p/2e8ea60d2b6a

13、element 多选框 @change事件怎样保留默认参数?

解决方法:采用es6的箭头函数 (val)=>方法名(val,…)

参考链接:https://blog.csdn.net/skyblue_afan/article/details/117744861

14、如何解决在线pdf下载分辨率大小不同,下载的字体大小不同?

原因:由于px是像素px是相对于显示器屏幕分辨率而言的,所以不同电脑分辨率不同,下载的字体大小也不同。
解决方法:使用rem自适应

参考链接:
https://www.runoob.com/w3cnote/px-em-rem-different.html
https://www.cnblogs.com/wind-lanyan/p/6978084.html

15、路由跳转不执行created、mounted方法?

解决方法:使用actived方法,或者给route-view加key

例:<router-view :key="$route.fullpath"></router-view>

参考链接:
https://www.jianshu.com/p/c0440894c82e
https://blog.csdn.net/muyun666/article/details/108751912

16、echarts 显示报没有这个id

在mounted函数里echarts.init

17、element ui 表格获取当前行数

<template slot-scope="scope">
	 {{scope.$index+1}} 
</template>

18、重复调用echart组件,只有第一个显示 已解决

参考链接:
https://blog.csdn.net/sunlizhen/article/details/110221665
https://www.cnblogs.com/hanhanours/p/11977863.html

19、echarts yAxis的文字不固定大小 已解决

{
                type: 'category',
                axisTick:{show:false},
                axisLine:{show:false},
                axisLabel:{
                  color:"black",
                  fontSize:14,
                  textStyle: {
                    color: '#fff',
                  }
                },
                data:yLabel,
                max:0.5, // 关键:设置y刻度最大值,相当于设置总体行高
                inverse:true
              },
              {
                type: 'category',
                inverse: true,
                axisTick: 'none',
                axisLine: 'none',
                show: true,
                axisLabel: {
                  padding:[0,0,0,15],
                  textStyle: {
                    color: '#a3a3a3',
                    fontSize: '14',
                  },
                },
                max:0.5,
                data: rDataList
              }
            ],

两个max要相同

20、css画圈 里有勾、有叉、有减号 特殊符号:

.incorrect {
  width: 20px;
  height: 20px;
  margin: 2px auto;
  border-radius: 50%;
  border: 1px solid #960000;
  display: flex;
  justify-content: center;
  align-items: center;
}
.incorrect:before {
  content: '\2716';
  color: #960000;
}

参考链接:https://www.cnblogs.com/liangxiblog/p/5981180.html

22、nginx解决反向代理超时

参考链接:
https://www.cnblogs.com/shaoniandream/p/10553696.html
https://juejin.cn/post/6844903652964958216 配置详解

23、Vue–判断用户首次进入页面还是刷新页面?

参考链接:https://blog.csdn.net/blue_698/article/details/114987085

24、vue移动端适配项目

参考链接:
https://blog.csdn.net/weixin_43242112/article/details/112193205
https://www.jianshu.com/p/15976cb2d262 碰到的坑

25、webstorm插件 效率提高

 简体中文环境翻译 Chinese(Simplified) language Pack EAP
 右边代码缩略图 CodeGlance2
 代码智能提示插件 Codeta AI Autocomplete Java and JavaScript
 快捷键操作提示  KeyPromoter X
 nginx支持 nginx Support
 彩色括号 Rainbow Brackets
 代码翻译 Translation

26、elment日期限制

:picker-options="pickerOptions"
pickerOptions:{
        disabledDate(time){
          //获取今年第一天
          let date = new Date();
          let year = date.getFullYear();
          let firstMonth = year + '-' + '01' + '-' + '01';
          return time.getTime() <  new Date(firstMonth) - 8.64e7;//如果没有后面的-8.64e7就是不可以选择今天的
        }
      },

参考链接:https://blog.csdn.net/qq_33769914/article/details/83856268

其他

1、text-indent 缩进
2、element 多选框实现反选

参考链接:https://blog.csdn.net/qq_35018214/article/details/103429020

3、报错信息
Component template should contain exactly one root element.
If you are using v-if on multiple elements, use v-else-if to chain them instead.
解决方法:vue外由一个容器包裹

参考链接:https://www.cnblogs.com/zhixi/p/9639981.html

4、vue的ref

https://www.jianshu.com/p/623c8b009a85

4、父子组件调用方法

https://blog.csdn.net/lypeng_/article/details/98074920

5、vue slot 插槽

https://cn.vuejs.org/v2/guide/components-slots.html
https://www.cnblogs.com/loveyt/p/9946450.html

6、vue.ls

https://www.jianshu.com/p/ab7f67878279

7、mixins 混入

https://v3.cn.vuejs.org/guide/mixins.html#%E5%85%A8%E5%B1%80-mixin

8、ant-design的modal 对话框、标签页、提示

提示 :https://ant.design/components/notification-cn/#header

9、数组获取div-----this.$refs[idx][0]
10、font-stretch font-stretch 属性可对当前的 font-family 进行伸缩变形。

https://www.w3school.com.cn/cssref/pr_font-stretch.asp

11、v-for 和v-if

https://blog.csdn.net/qq_37024887/article/details/104970950

12、v-if 判断数在一个区间 用&& <= >=

https://blog.csdn.net/m0_37128507/article/details/108737877

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值