日常问题速记

日常问题速记


日常问题及解决方案或知识点

  1. UI框架组件方法中绑定默认参数,此时传参会覆盖掉默认参数

解决方案

1
2
3
4
5
6
7
8
//template
@close="deleteNode(item.id)"
//js
deleteNode(id){
return (e)=>{
...
}
}

  1. 常见HTTP状态码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    export default {  
    200'请求被正确处理并返回了结果',  
    201'新增或修改数据成功',  
    202'请求已进入任务队列,被异步处理',
       203'令牌或登录状态失效',
       204'删除数据成功',  
    301'请求的资源被永久重定向到新的位置,将从新的地址重新请求',  
    302'请求的资源被临时重定向到新的位置',  
    400'请求参数错误,服务器没有对数据做新建或修改',  
    401'无访问权限,用户名、密码、令牌错误',  
    403'得到访问授权,但访问是被禁止',  
    404'访问的是不存在的资源',  
    405'请求方式不正确',  
    406'请求的数据格式不是服务接收的类型',  
    410'请求的资源被永久删除',  
    422'服务器创建对象时发生错误',  
    500'服务器不可用,未返回正确的数据',  
    502'服务器网关错误',  
    503'服务器过载或维护中',  
    504'服务器响应超时',
    }
  1. 使用UI框架的弹框组件时,index.vue中引入组件,组件的生命周期就会开始执行,但是往往这是组件处于隐藏状态,导致引用插件无法获取到dom节点而报错

案例

index.vue

1
2
3
4
5
6
7
<template>
<div>
<SearchForm />
<Table />
<DetailModel />
div>
template>

DetailModel.vue

1
2
3
 mounted () {
this.$echarts.init(document.getElementById('chart')) // 初始化图表获取dom节点报错
},

解决方案

1
2
3
4
5
6
7
<html>
<div>
<SearchForm />
<Table />
<DetailModel v-if="state.modalDetailVisible"/>
< /div>
< /html>
1
2
3
4
5
 mounted () {
this.$nextTick(() => { //使用nextTick函数
this.$echarts.init(document.getElementById('chart'))
})
},

根据分数 计算等级

50 ==>E
95 ==>A

1
2
3
scoreLevel (score) {
return (score < 0 || score > 100) ? 'ERROR' : { 10: 'A', 9: 'A', 8: 'B', 7: 'C', 6: 'D' }[~~(score / 10)] || 'E'
},

空位合并运算符 ??

a ?? b 的结果是:

如果 a 是已定义的,则结果为 a,

如果 a 不是已定义的,则结果为 b。

与 || 比较

|| 返回第一个 真 值。

?? 返回第一个 已定义的 值。

1
2
3
let length=0
length || '数据异常' //数据异常
length ?? '数据异常' //0

可选链运算符

Cannot read property XXX of undefined,抛出无法从未定义的数据中读取某个字段

可选链运算符在查找嵌套对象时,找到链中的第一个undefined或者null后会立即终止,并返回undefined,而不会不断向下查找而导致抛错

1
2
3
4
5
6

const obj = { foo: { bar: 123 } }

console.log(obj?.fo?.bar) //undefined

console.log(obj.fo.bar) //Uncaught TypeError: Cannot read property 'bar' of undefined

无法打开 http://*.github.io

现在无法打开 *.http://github.io 原因是电信运营商 DNS 污染(域名指往不正确的IP地址)

这次应该是运营商行为。像封某歌是国家行为。

可以通过修改 hosts文件 / 修改DNS服务器 / 代理 的方式访问。

可将 DNS 修改为 114.114.114.114,一个良心 DNS 服务商。

但大多数访客是不会进行上方操作的。作为站长,还是使用域名为好,服务器不稳定可以方便地更换服务商。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×