1.说一下vue的父子组件传参
使用i自定义属性和自定义事件传参
使用ref属性传参
vuex 传参
2.说一下vue2和vue3的区别
template 是多个根标签 因为fragment组件
组合式 API setup 换成了 选择式Api data methods 等
vue3使用 proxy 替代了 vue2 的Object.defineProperty 实现数据响应式 所以vue3 的性能得到了巨大的提升
支持 ts
pina 替换了 vuex
3用过Konva吗,用过他的api吗(昨晚瞅了一眼,我说我不熟,记得有个是createLinerG...画一条,渐变的线)
新建 new Stage 舞台 地毯 人 地毯挂载到舞台 人就是各式各样的图形在 地毯上表演 演示
4.说一下ts
时 js 的超级 主要比js多了静态类型,让数据更加的精确了 ,提高了代码的准确性,让开发更好的完成
===》是通过前面的问题延伸的问题
1.介绍CSS层级
z-index 控制 页面的盒子的显示位置 层级大的显示在上面 例子就是一个模态框的制作 把页面的内容放在最底层 把遮罩层放在第二层 把模态框的具体内容放在最顶层
2.CSS有哪些方法可以提升层级
使用浮动脱离标准流 使用 z-index 属性
3.移动端自适应用什么方法
rem 布局 rem 是根据html根标签来动态设置自己的大小的 一般使用在移动端项目布局
flex 布局 是一位布局 分为 主轴和侧轴 然后又 布局方式 end start center space-between evenly 等 ; align 可以改变主轴和侧轴的方向
grid 布局 二维布局 不了解
table 布局 不了解
百分比布局 使用 百分比当作高度和宽度自适应
4.REM解释一下
了解 rem 之前 先了解 em 单位 ,em 和 rem 都是相对单位 ,px 是绝对单位 ,em 和 rem 的区别就是相对大小的对象不同 ,em 是相对 父级元素设置自身大小 rem 相对html根标签设置大小
5.JS的数据类型,区别
5种简单的基本数据类型 1 种复杂的数据类型 也叫做引用数据类型
数字 字符串 布尔 undefied 未定义就是 声明了变量但是没有赋值 打印出来就是 undefined 还有个是null 是一个占位符,比如要定义一个数据来接收接口返回的数据,是个对象形式的数据 定义数据变量的时候可以使用 null 占位,或者使用 {} 占位也可以
6.对象深拷贝问题
了解拷贝 先了解内存和变量的关系,首先 js 解析代码的时候 遇到了变量就会把变量存储到本地电脑的内存种,对于 基本数据类型 把数据存储到栈内存种,对于引用数据类型(实际的数据和数据名--数据名就是变量的地址 ) 要注意 所有的编程语言的变量名都是一个地址 ,或者叫指针 ;遇到复杂数据类型 先把真实的数据放在堆内存中,把地址放在栈内存中,
ps:所以 栈内存的数据读取的速度快些,因为 读取栈内存的数据的时候,需要,读取栈内存和堆内存的2个数据
如果有两个数据公用了一个地址,就是变量名,比如 a = {} b = {} 当操作 a 或者 b 的时候,是相互影响的
7.跨域怎么解决,===》项目中怎么配置代理 ===》JSONP是怎么解决跨域的
跨域有开发环境和生产环境,生产环境的跨域可以在前端和后端配置,在前端,在 vue.config.js 文件的 proxy 的 target 设置接口地址 ;或者在后端配置 , 配置一个 COS 配置对象即可
生产环境,使用 nginx 反向代理 ;
8.$NEXTTICK的作用
和updated 钩子函数的作用类似,感知 页面解构的更新完成,使用场景:当我们修改了数据,不能立即对页面的dom操作,因为数据和页面解构还没有同步完成 ;原理是 vue 通过控制异步队列和nextTick的回调函数的执行顺序 ;
9.说一下$SET,用在VUE2还是VUE3
$set 是用来追加响应式数据的,用在 vue2 上,因为 vue2 使用 Object.defineProperty 定义数据响应式
10.VUE2和VUE3区别
1. template 的根标签 ------------ fragment 内置组件
2. ts ???
3. 组合式API setup 语法糖
4. proxy 和 Object.defineProperty 实现响应式
5. pina 替代了 vuex
11.VUE数据双向绑定原理
初始化组件实例的时候,vue内部会遍历data数据,通过 obejct.defineProperty 对数据 添加 set 和 get 函数, 当读取数据 触发get 函数 ,修改数据会触发 set 函数 ,在set 函数修改完了数据,然后再更新 dom 结构 ;
12.VUE怎么阻止冒泡
给事件添加修饰符 stop
13.ES6怎么嵌入变量
就是 模板字符串的是由 使用了 反引号 ${} 包裹变量
14.介绍一下PROMISE
prmise 是js的内置函数,是期约函数,Promise 因为要他要等待一个结果,所以叫做 期约函数 ;
三种状态 pendding 等待状态,reslove 成功状态 rejecct 失败状态 ;
3 个状态 2 个过程
15.数组的排序方式
16.数组去重方法
17.UNIAPP配置导航栏在哪个文件
pages.json 的tabbar
18.UNIAPP怎么跳转界面
navigarto标签类似a标签类似vue的router-link标签 url 和 open-type
19.小程序上线流程
20.ECHARTS可以话哪些图表 ==》画折线图和柱状图哪些配置可以改变样式 ==》怎么添加点击事件
21.HTTP常见状态码 ==》301 302 307解释一下
22.倒计时组件怎么封装
23.定时器怎么写
24.在定时器最后要注意什么
25.弹性盒子怎么实现全部右对齐
26.清除浮动的方法 ==》 OVERFLOW:HIDDEN怎么清除浮动的 ==》清除浮动最常用的方法是哪个
27.项目中遇到哪些难点
28.通过哪些方式来学习
29.对于加班和出差 你怎么看
vue框架的理解
mvvm理解
vue响应式
vue响应式的get和set如何触发或者过程
看过vue的源码吗?
vue2数组和对象的区别
data为什么是一个函数
computed和watch区别
diff算法
diff的新旧节点数组如何比较
key的作用
key发生变化,dom还会复用吗
跨层级组件通信(不推荐说provide和inject) 3 个 vuex + ref + 自定义属性和自定义事件
v-if和v-for的优先级 v-for
生命周期
beforeCreate和created的区别
使用过vuex和vue-router吗
vue-router的钩子函数
var声明函数和function声明函数的区别
var声明的函数和function声明的函数谁的优先级更高
原型和原型链如何实现继承
闭包的理解
闭包的应用
节流和防抖
后端和返回的数据和自己需要的不一样怎么办
父页面通过ifaram嵌套子页面,如何固定子页面菜单
dom如何映射数据
dom递归退出循环的时机
vue1常用的api
ref和reactive的区别
1.vue的生命周期和小程序的生命周期区别
2.你为什么觉得自己值这个价钱
3.null和undefined的区别
4.get和post请求的区别
5.讲一下最近的项目
6.CDN优化
7.element表单校验注意点
1.说下最近的项目或者熟悉的项目,有什么难点
2.说下vue3的使用感想(说些vue3对比vue3的方便之处)
3.有没有碰到过数组响应丢失(问的是ref和reactive的用法,什么情况下用)
4.数据变了视图没变,怎么查找错误,怎么解决
5.说下后台项目的权限管理
6.后台信息要是只返回标识符,怎么筛选路由
7.http拦截能做些什么(问的是axios的封装)
8.登录失效,token过期怎么处理
9.怎么判断数组是数组
10.指定下标删除数组
11.数组map能干什么,会改变原数组吗
12.cancat是否会改变原数组
13.深拷贝浅拷贝
14.不考虑深浅拷贝复制数组用什么方法
1. concat
2.splice
3. assign
4. 展开运算符
15.const声明对象修改对象里面的值会触发报错吗
不会 对象是引用数据类型 只要对象的地址不发生变化,对象的值就不会改变
16.说下es6 new map 和new set
set 类似于数组,但是元素没有重复的,会自动清除重复的元素
map类似于对象,也是键值对的集合,但是键名不在限于字符串,各种类型的值都可以作为键值名
17.说下事件循环
一段代码有同步和异步代码,js引擎会执行同步代码,遇到异步代码会把代码放到任务队列等待执行,当主线程的同步代码执行完了,js引擎从任内务队列把异步事件拿出来交给浏览器执行,执行结束,再拿出任务给浏览器执行,循环直到任务队列没有异步事件为止 ;
18.宏任务微任务有哪些
宏任务有同步和异步代码
微任务有 process.nextTick process.then
19.宏任务和微任务有什么差别
宏任务是宿主发起的 微任务是js自己发起的
每执行一次宏任务,都会检查任务队列是否有微任务有的化就执行微任务
20.说下搭建移动端开发响应式框架
主要做2件事
1. 设置 rem 的基准值 实用淘宝的flexible.js文件
2. 把px转换rem,下载 pxtorem插件
21.px转换rem怎么转换的
下载淘宝团队开发的flexible.js 然后全局导入加载
1.说一下组件之间的通讯方式
父子组件自定义属性和自定义事件
vuex
ref获取组件实例
provide 和 inject
2.说一下权限怎么操作
权限可以分为用户权限可按钮权限
用户权限:不同的用户有不同的路由映射
按钮权限:根据返回的按钮权限标识和按钮本身的权限标签对比
3.说一下权限按钮怎么操作
首先,给所有的按钮一个唯一的权限标识符
然后,定义一个判断权限按钮的方法
在者,根据用户返回的权限按钮标识数组和按钮自己的标识符比较,没有权限就 disabled 禁用
4.说一下打包方式怎么优化
把css代码抽离出来
把公共的js代码抽离出来
使用 CDN 引入组件库
小图片使用 base64
开启 Gzip 压缩
5.封装过组件吗,需要注意什么
封装过,
低耦合(组件之间依赖要小)高内聚
不要直接修改父组件的状态
要从父组件传入信息,不要在公共组件请求数据
传入数据要加校验
处理事件的方法要写在父组件中
6.说一下代码优化怎么做,一般怎么排查
7.一般用ui组件库按需引入怎么操作
8.还有一些就是跟项目有关的,做了哪些模块遇到哪些难点,做了什么优化
9.lodash用了哪些
使用过节流和防抖
10.说一下节流防抖的原理,有什么应用场景,自己封装过吗
节流:登录按钮 关注按钮
防抖:搜索框
封装过:我在完成搜索业务的时候,watch监听了keyords变化,使用 setTimeout 间隔 500 ms 执行一次异步请求 ;
1、怎么实现盒子居中
使用 flex 布局 ,给父盒子设置 justify-content:center 和 align-item:center
使用子绝父相,子盒子设置 left 和 top :50% 偏移量,如果已知子盒子的高度就设置 margin top left 为 高度的一半
如果未知高度 就设置 x y 轴移动 - 的 50 %
2、说说地址栏输入 URL 敲下回车后发生了什么?
对域名解析,发起 tcp 的三次握手 发送http请求 服务器响应http请求,浏览器得到html代码
浏览器解析html代码并加载资源 比如csss img 等 浏览器把页面呈现给用户
3、浏览器页面渲染原理
多进程
tcp http 处理html代码文件
4、keep-alive:props属性
max定义keep-alve 最多可以缓存的组件 如果超过10就会把最久没有使用的组件实例销毁
5、首页跳转到详情页然后再返回首页,怎么使页面不重新刷新,$router.back()、$router.go()不行、
$router.push()编程式导航
routerlink的 to 属性
6、vue2和vue3区别
1. vue3 使用proxy替代了Object.defineProperty实现了数据的响应式 所以vue3的新能得到巨大的提升
2. vue3 的tamplate 模板可以写多个根标签 因为 vue3 增加了新的内置组件 fragmnet
3. vue3使用了组合式API替代了选项式API
7、toRef和toRefs的区别还有ref
ref 是给基本数据和数据添加响应式的 reactive 是给对象添加响应式数据的
toRef是给对象添加一个响应式属性
toRefs是给对象每个属性添加响应式
8、package.json怎么配置跨域
设置proxy的targat属性设置接口的地址
原理是在客户端和服务端新建一个中间服务器
9、工作中你的webpack都怎么配置的,配置了哪些东西?
vue.config.js 中配置项目名称 启动项目字段等
10、首屏优化有哪些?
首先 首屏优化是因为SPA应用 首次加载所有的html和css以及js代码文件 消耗比较大 后面页面不会因为用户的操作而刷新或者跳转页面
1. 使用路由的懒加载 就不会在首次加载所有的路由设置
2. SSR渲染
3. 给首页做单独的加载首页的服务器
4. 不要生成 map 文件
5. 引入组件库的时候使用按需引入
3.
11、谈下低代码、(不是低质量代码)
低代码是一种可视化的应用开发方式 基于图形的拖拽 参数化的配置等高效的方式 快速创建项目
12、聊下微前端
开发应用的时候拆分开发 然后再合成
13、vite生态不太好为什么还选择vue3+vite?
速度快 性能高
vite + vue3 相比较于 vue2 是未来的趋势 vue2 会被淘汰
vite 是新一代的打包工具
14、权限管理
用户权限管理和按钮权限管理
三种用户权限管理和疯转函数判断按钮权限
15、原型、原型链、构造函数
原型
原型链的作用 查找变量
构造函数
16、Echarts图表和AntV图表
使用步骤:
1. 下载 or 装包
2. 定义容器 初始化eacharts 实例并和容器建立关联
3. 定义配置项
4. 配置先注入到实例中渲染
17、父组件中有子组件时生命周期顺序是怎么样的
父组件的 beforeCreate 父组件 created 父组件 beforeMount 子组件beforeCreate 子组件 created 子组件 beforeMount 子组件 mounted 父组件 mounted
18、为什么要清除内部浮动?
因为浮动不会撑开父盒子的高度 会影响 同级元素的布局
1 添加心累 clearFix clear:both
2 overflox:hidden
19、怎么画一条有箭头的线?
20、说下BFC,什么情况下触发?
一个块级上下文 不受外面影响
21、如何响应式布局?
22、css选择器以及哪些css属性可以被继承哪些不能继承
23、说一下压栈
24、UI组件中的tabs组件切换时,怎么缓存每个子部分的内容
25、数据类型及检测方式,用哪些方法可以检测的类型更全
26、闭包及使用场景
27、ES5中怎么实现继承
28、VU3中hooks原理
29、watch和watcheffect区别
30、插槽有哪些?平时用哪个
31、vue2和vue3响应式原理
32、平常工作代码管理工具是哪个
33、打包优化有哪些
34、给你个新的数据可视化工具多久能上手,是做一个地图的大屏可视化,军用的(不是Echatrs和AntV)
35、我们组在用TS写项目,你来了之后用TS可以坚持下来吗
运用人力资源信息数据库,根据企业的组织层次,授予相应的权限,以便更好地把控企业人力资源的现状、人力资源的分配和使用。该项目基于vue-element-admin搭建而成,主要功能包括:公司设置、组织架构、员工信息、考核审批、工资福利、社保缴纳等。