1.什么是类数组?Js中类数组如何转化数组?
类数组是具有length属性,但不具备数组方法的对象。
类数组转换为数组:①Array.prototype.slice.call();②Array.from();③扩展运算符(…)。
2.Vue中的性能优化方案有哪些?
Vue中的性能优化方案有路由懒加载、组件懒加载、keep-alive缓存组件、按需引入第三方库、使用v-if和v-show进行条件渲染、避免使用过多的计算属性和watcher等。
3.Vue中常用指令?
v-if、v-show、v-for、v-bind、v-on、v-model、v-text等
4.Vue组件中data为什么是个函数?
这是因为当我们在多个组件中使用相同的组件时,如果data属性是一个对象,那么所有组件都会共享这个对象,这会导致数据的混乱。而如果将data属性定义成一个函数,每个组件都会有自己的实例,就不会出现数据混乱的问题了。
Vue组件中data为函数是为了避免组件之间数据污染的问题,每个组件都会返回一个新的data对象。
5.Vue中watch和computed的区别?
watch是用于监听一个特定的数据变化,当数据变化时执行某些操作。而computed是用于计算一个新的属性,该新属性的值依赖于其他属性的值,当依赖的属性值发生变化时,computed属性会自动更新。
6.Vue中自定义指令的使用场景?自定义指令的用法?
自定义指令的使用场景有:操作DOM元素、封装复用性高的行为、与第三方库结合等。
自定义指令的用法是通过Vue.directive()方法进行注册,其中包括指令名称、指令对象等。比如:
Vue.directive('my-directive', {
bind: function (el, binding, vnode) {
// 指令绑定到元素上时的操作
},
update: function (el, binding, vnode, oldVnode) {
// 元素更新时的操作
},
unbind: function (el, binding, vnode) {
// 指令从元素上解绑时的操作
}
});
7.Vue中项目中无刷新token续传怎么实现的?
可以通过在请求拦截器中判断token是否过期,如果过期则请求刷新token接口,获取新的token后重新发起上一次请求。
import axios from 'axios'
import router from './router'
// 请求拦截器
axios.interceptors.request.use(
config => {
// 判断token是否过期
if (localStorage.getItem('token') && isTokenExpired(localStorage.getItem('token'))) {
// 刷新token
return axios.post('/api/refreshToken', {
token: localStorage.getItem('token')
}).then(res => {
// 更新token
localStorage.setItem('token', res.data.token)
config.headers.Authorization = 'Bearer ' + res.data.token
return config
}).catch(err => {
// 刷新token失败,跳转到登录页
router.push('/login')
return Promise.reject(error)
})
} else {
// token未过期,直接返回config
config.headers.Authorization = 'Bearer ' + localStorage.getItem('token')
return config
}
},
error => {
return Promise.reject(error)
}
)
// 判断token是否过期的函数
function isTokenExpired (token) {
const payload = JSON.parse(atob(token.split('.')[1]))
return Date.now() / 1000 > payload.exp
}
8.Vue中Vue.use() 注册插件是怎么注册的?
Vue.use()注册插件是通过插件的install方法进行注册,其中可以传入Vue实例和一些可选参数。
// 定义插件对象
const myPlugin = {
install: function (Vue, options) {
// 在Vue上注册全局组件或者自定义指令等等
}
}
// 注册插件
Vue.use(myPlugin)
9.Vue中网络请求axios是如何封装的?
网络请求axios是通过封装axios库的方式进行的,可以将常用的请求方式(如get、post、put、delete等)封装成统一的接口,可以在请求拦截器和响应拦截器中进行全局的统一处理。
10.Vue项目你使用到的工具类有那些?
Vue项目中使用到的工具类有:lodash、dayjs、axios、vue-router、vuex等。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 树 可使用类似于绘制高度贴图和纹理的方式在地形上绘制树。然而,树是从表面生长的 3D 对象实体。Unity 使用优化(比如针对远处树的公告牌)来保持良好的渲染性能。这意味着可…