备战面试!最近遇到的一些需要重点注意的地方

211 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第7天,点击查看活动详情

最近在写代码的时候,遇到很多容易犯的错误,而且自己是很容易忽视掉,所以记录下来,提醒自己注意!

1、每次操作都需要获取token的,要把获取token写在函数里面

比如在请求拦截器了,每次发请求都需要通过token做判断

// 添加请求拦截器
instance.interceptors.request.use(
function (config) {
// 在发送请求之前做些什么
const token = getToken().token
if (token) {
  config.headers!.Authorization = 'Bearer ' + token
}
return config
},
function (error) {
// 对请求错误做些什么
return Promise.reject(error)
}
)

还有在路由鉴权组件里,需要通过判断token有没有,来决定页面的展示

<Route
    {...rest}
     // reder函数里的参数props,可以拿到所有的属性
    render={props => {
      if (hasToken()) {
        return children
      }
      return (
        <Redirect
          to={{
            pathname: '/login',
            state: {
              from: props.location.pathname // 回跳地址
            }
          }}
        />
       )
     }}
  />

这里只是举出这两个列子,就是当我的每一次操作都需要这个数据做判断,并且这个数据是随时变化的,就一定要把这个获取状态的操作写在代码逻辑里面,不能放在全局中

2、在定义类型数组的时候要加[]

type Channel = {
id:string,
name:string,
}
const  Chanenls = Channel[]

定义Chanenls是一个Channel[]类型的数组,在需要定义一个Channel类型的数组的时候,一定要加上[]

3、React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架(需要学习)

4、# Lodash这个实用的工具库,里面一些好用的工具函数,要掌握

_.differenceBy([3.1, 2.2, 1.3], [4.4, 2.5], Math.floor);
// => [3.1, 1.3] 
_.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');
// => [{ 'x': 2 }]

比如这个可以给数组做减法,把第一个数组和第二个作比较,根据判断依据(第三个参数)找出相同的元素,然后第一个数组去掉相同的部分,留下不同的 lodash里面还有防抖和节流的工具函数,也很好用!

lodash中文文档:www.lodashjs.com/docs/lodash…

5、如果连参数也是传过来的不是固定的,需要用中括号语法取值[参数]

export const updateUserProfile = (type: string, value:string) => {
return async () => { // [type]中括号动态取值,因为type是一个变量,[]里面可以把变量的取出来
await request.patch('/user/profile', { [type]: value })
}
}

6、好用的工具库VueUse/core

这个工具库非常适合Vue3,里面有很多好的工具函数值得学习

VueUse:vueuse.org/guide/