前端调试没有滚动条_记录最近遇到的几个前端小问题

前言:


本职Java后端偏大数据,但由于工作的需要,最近又狠狠写了一把Vue,对于前端的学习一直比较碎片化,所以遇到的-所谓的问题也是难度各异,在这里做一点记录,欢迎前端大佬指导。81adb6f2ded8c682f9a1470ec2601936.png81adb6f2ded8c682f9a1470ec2601936.png81adb6f2ded8c682f9a1470ec2601936.png

本篇公号主要包括以下几个前端小问题:

  • Js中const,var,let区别与用法

  • vue报错:use a data or computed property based on the prop's value.

  • vue报错:The data property "xxxxx" is already declared as a prop. Use prop default value instead.

  • vue子组件给父组件传值

  • Js如何跳出forEach循环

  • Js生成8位随机数

  • CSS鼠标悬浮某元素上变色

Js中const,var,let区别与用法


  • 1.const 定义的变量,一旦定义后,就不能修改,即 const 声明的为常量,而且必须初始化。但是,并不是说 const 声明的变量其内部内容不可变,只是变量标识符不能重新分配。

const a = 1;//正确// const a;//错误,必须初始化 // a = 2;console.log(a);//Uncaught TypeError: Assignment to constant variable.
  • 2.var 在函数内部声明,那么这个变量就属于当前函数作用域,如果声明是发生在任何函数外的顶层声明,那么这个变量就属于全局作用域。

    如果在声明变量时,省略 var 的话,该变量就会变成全局变量,如全局作用域中存在该变量,就会更新其值。所以var声明的变量会出现污染全局的情况,要特别注意。

    var定义的变量可以修改,初不初始化都可以,如果不初始化会输出undefined,不会报错。

var a = 1; //此处声明的变量a为全局变量function foo(){   a = 2;//此处的变量a也是全局变量   var b;//不报错;   var b=1;   b=2;//不报错;}
  • 3.let是块级作用域,函数内部使用let定义后,对函数外部无影响,但是在同一个块级作用域,不能重复声明变量。

let a = 2;function change(){let a = 3;//正确let a = 2;//Uncaught SyntaxError: Identifier 'a' has already been declared}

一个关于var 与let的经典的栗子:

for (var i = 0; i < 10; i++) {    setTimeout(function(){        console.log(i);    },100)};//输出10个10for (let i = 0; i < 10; i++) {    setTimeout(function(){        console.log(i);    },100)};//输出0-9

vue报错use a data or computed property based on the prop's value.


用父组件传值给子组件的过程中,对其直接修改就会报以上问题的错误 。

原因:prop是单向绑定,不能更改数据,只能由父组件传输过来 解决方法:可以在子组件中data中定义数据,使用$emit和$on传给父组件,父组件接收后在赋值给当前要修改的数据。

vue报错: The data property "XXXX" is already declared as a prop. Use prop default value instead.


在我们访问data 和methods中的数据之外,还访问了props组件传递过来的值,如果发现data数据字段中的key值已经被定义,那么props传的参数再有这个重名的key值就会报这个错误。

props的优先级 > data中的优先级 > menthods中的优先级例如://下面就会报这个错误exports default(){    props:{        xxxxx:123    },    data(){        return {            xxxxx:'',        }       }}

vue子组件给父组件传值


介绍一个非常简单的子组件向父组件传值的方法:

//子组件函数中,利用.$emit()传递给父组件 var nodeMessage={    nodeId:_self.currentNode.nodeId,    nodeName:_self.currentNode.nodeName};_self.$emit('func2',nodeMessage);//func2: 是父组件指定的传数据绑定的函数,nodeMessage:子组件给父组件传递的数据
 //父组件来接收import taskNodeDialog from './taskNodeDialog'//子组件components:{taskNodeDialog}, .......

Js如何跳出forEach循环


我们知道传统的for循环下,我们可以通过break、continue、return来跳出循环,这个就不在这里赘述了。但是你知道怎么跳出forEach循环吗(前面的方式说明肯定不行啦)?见下:

//使用try···catch捕获异常来try {  var arr = [1, 2, 3, 4];  arr.forEach(function (item, index) {    //跳出条件    if (item === 3) {      throw new Error("LoopTerminates");    }    //do something    console.log(item);  });} catch (e) {  if (e.message !== "LoopTerminates") throw e;};

Js生成8位随机数


16位的uuid太长?试试下面这个可以指定长度与基数的函数:

这个可以指定长度和基数:uuid(8, 16) // "238GHr90"function uuid(len, radix) {      var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');      var uuid = [], i;      radix = radix || chars.length;      if (len) {        for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix];      } else {        var r;        uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';        uuid[14] = '4';        for (i = 0; i < 36; i++) {          if (!uuid[i]) {            r = 0 | Math.random()*16;            uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];          }        }      }      return uuid.join('');  }

element-ui中的表格el-table滚动条样式修改


el-table默认的滚动条宽度也忒宽了,可能难点只是在于找不到对应的元素(/deep/ .el-table__body-wrapper),修改还是比较简单的,见下:

 // 滚动条的宽度/deep/ .el-table__body-wrapper::-webkit-scrollbar {    width: 8px; // 横向滚动条    height: 8px; // 纵向滚动条 必写}// 滚动条的滑块/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {    border-radius: 10px;    -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);    background: rgba(180, 180, 180, 0.53);}// 外层轨道/deep/ .el-table__body-wrapper::-webkit-scrollbar-track {    -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);    border-radius: 0;    background: rgba(0,0,0,0.1);}

CSS鼠标悬浮某元素上变色


项目中自定义了一些span元素,并加上了click事件,鼠标是设置成了小手的悬浮显示,但是没有明显的button感觉呀,那就自己修改一下悬浮颜色吧~

缩小.......hoverIcon:hover{    color: rgba(255, 84, 43, 0.85);}

总结:


冷吗?冷就对了,温暖是留给开小轿车的人。早安,共享单车人 !

每天对着空气挥一拳,不为别的,就为干这个世界!早安,打工人!

打工可能会少活十年,不打工你一天也活不下去。早上好,打工人!

打工不仅能致富,还能交友娶媳妇。打工人,打工魂,打工都是人上人。

家人们早上好 ! 喜欢的朋友,记得点赞?关注➕2605ab945563ed932363d719e02340e7.png


bb67a257345da5de7495c19f45fe244e.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值