目录
1.eval(字符串)=数组
2.为何v-for要绑定key
为了快速找到循环的节点,减少循环次数,提升渲染性能
3.HTTP状态码
1XX--提示信息 100--继续 101--更改协议
2XX--成功 200--客户端请求成功
3XX--重定向 301--永久转移 302--暂时转移 304--未修改
4XX--客户端错误 400--错误的请求 401--访问被拒绝 402--禁止访问 404--未找到
5XX--服务端错误 500--服务器内部错误 503--服务不可用 504--网关超时
4.事件修饰符
.stop 是阻止冒泡行为,不让当前元素的事件继续往外触发,如阻止点击div内部事件,触发div事件
.prevent 是阻止事件本身行为,如阻止超链接的点击跳转,form表单的点击提交
.self 是只有是自己触发的自己才会执行,如果接受到内部的冒泡事件传递信号触发,会忽略掉这个信号
.capture 是改变js默认的事件机制,默认是冒泡,capture功能是将冒泡改为倾听模式
.once 是将事件设置为只执行一次,如 .click.prevent.once 代表只阻止事件的默认行为一次,当第二次触发的时候事件本身的行为会执行
.passive 滚动事件的默认行为 (即滚动行为) 将会立即触发,而不会等待 onScroll 完成。这个 .passive 修饰符尤其能够提升移动端的性能。
5.常见的异步方法
回调函数callback,事件监听,promise,async/await,ajax,定时器,then,catch
6.用户跳过登录页直接输入地址跳转页面,程序是如何拦截的
未登录直接跳转路由,获取不到token,发起请求时未携带token,那么在响应的response做拦截器预处理,会报错401然后重定向到登录页
7.watch和computed
watch常用于一个数据影响多个数据,可以监听数据从无到有,如果是监听数值的变化,需要加{deep:true}深度监听;
computed常用于一个数据受多个数据影响,即一个数据依赖于多个数据。
8.下载
import { saveAs } from 'file-saver'
downloadModelByIds(传参) // 调接口
.then(({ data }: any) => {
confirmLoading.value = false
const filename = `${downloadNames.value}.zip` //设置文件名字
const blob = new Blob([data], { type: 'application/zip' })
saveAs(blob, filename)
})
.catch((error) => {
confirmLoading.value = false
console.log(`output->error`, error)
})
9.拷贝
import useClipboard from 'vue-clipboard3'
const { toClipboard } = useClipboard()
const copyUrl = async (record: string, tip: string) => {
try {
// 复制
await toClipboard(record)
message.success(`${tip}拷贝成功`)
// 复制成功
} catch (e) {
// 复制失败
message.error(`${tip}拷贝失败`)
}
}
10.import引入和link引入的区别
1.link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用,而@import是CSS提供的,只能用于加载CSS;
2.页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
3.import只在IE5以上才能被识别,而link是XHTML标签,无兼容问题。
11.$mount和el
$mount和el都是用来将vue实例挂载到dom上的
区别:el是自动挂载,$mount是手动挂载(灵活一点)
12.使用ref获取Dom
<input type="text" id="input_box" ref="inputRef">
使用ref获取 const dom = this.$refs.inputRef
ref
被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs
对象上 ,如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例。
注意:$refs 是一个对象,持有已注册过 ref 的所有的子组件。
使用id获取 const dom = document.getElementById("input_box")
这两种方法获得的都是Dom节点,而$refs相对document.getElementById的方法,会减少获取dom节点的消耗。