vue的nextTick

vue渲染是异步的,在一个列表push选项的场景下,如果尝试获取DOM改变后的元素数据,得到的数据仍是改变前的数据,出现“慢一拍”的情况
image.png
this.$nextTick()函数接受一个回调函数,会在DOM异步渲染完成后执行这个回调,故我们使用这个api,在传入的回调中以便 获取“即时”的DOM数据

vue在做异步渲染的时候,是“批量”地进行渲染,即 在列表push多个选项的场景下,this.$nextTick只会返回一次响应

它跟全局方法 nextTick 一样,不同的是回调的 this 自动绑定到调用它的实例上。
image.png

vue的插槽

抽象理解:插槽是子组件提供的“插孔”,可以“连通”外部父组件给予的数据信息,接收外部父组件传递来的内容
基本使用:子组件写;父组件模板中子组件内的模板均会渲染到子组件中
插槽的作用域:插槽所使用的数据和方法与插槽放置的位置无关,(插槽放置于子组件,连通于父组件)插槽连通哪个组件(一般连通父组件),则使用哪个组件的数据,若要使用子组件的数据,则需要在父组件中传入对应数据和方法
插槽的候补内容:可以直接在候补内容写死;可以在props中传入default值
具名插槽:适用于多个插槽分别对应不同页面部分,v-slot: 缩写为 # ,子组件为;父组件为
插槽的props:子组件<slot :content="lession.id">可传递插槽的props给父组件,然后父组件使用具名插槽接收数据,并定义相关操作<template #default="{id}"><button @click="del(id)">删除</button></template>,父组件接收数据可使用解构;默认插槽default中不可再嵌套其他插槽

ES6+补充

箭头函数中的函数体中不写{}则默认自动retrun
Object.assign(target,…source) 返回目标对象target
slice和splice
slice是提取/截取,可针对字符串和数组,不会改变源,从前往后0开始;从后往前-1开始
splice是增删改操作,只针对数组,会改变源
Object.entries和Object.keys
entries将对象变成 键值对的数组,然后可用for of 再遍历出来 键值,在ts中搭配:entries+forEach
keys

aixos拦截器

响应拦截,请求发出后对服务器的响应做拦截
在此之前,前端只有默认得到响应内容,此时已“尘埃落定”
响应拦截的作用便是在得到响应内容前进行 “预处理”

常用:loading组件的使用

欢聚实习

前后端联调

leader说这是最基础的能力!!
必须拿下

思路:
根据对应页面的字段,复制字段后在vscode中搜索
查看该字段在哪个views页面下的哪个components组件下
去到对应组件,在组件中查看哪个部分调用了接口,
接口调用的方式有很多,举例:下拉框调用接口通过onfocus触发请求,input输入框通过onchange触发请求,但公司业务组件若有配置请求方式,则应该熟练使用公司业务组件

遇到难题:
公司内部业务组件使用不熟悉
公司项目代码使用tsx,涉及react hooks、useEffect等新概念,完全不了解
主要负责star-rock项目,作为一个系统管理平台,面向b端,应该熟悉常用的管理系统的“增删改查”业务,熟悉form表单组件、data数据组件需要熟练使用
前后端联调思路,接口文档的了解、postman接口测试,内网注意配置参数才能调用接口

请求应该在子组件发出还是父组件发出?一般父组件发出请求,把参数传给子组件,子组件一般是抽离出的单文件组件,如果子组件不是抽离出来的公共组件,那么请求可以直接在子组件中发出,发请求可以在mounted钩子中发出(调用接口)

数据是动态的→需要调用接口发出请求→自行查看接口文档的接口(查看接口类名是否对应页面需要请求的数据即可)

侧边导航联调:(导航组件递归处理、路由多级展示问题)
image.png
后端返回值样例:items:[{name:'首页',url:"url1",child:[{name:'子级页1',url:'url11',child:[]...}]},{},{}...]
导航有子级、无子级的渲染是不同的,且无法确定后端传过来的导航级数,需要递归判断
首先处理无子级的导航,即一级导航,使用v-for
处理有子级的导航,需要循环遍历,使用递归,将有子级和无子级的导航均抽离出来成为一个公共组件