期间遇到的问题:
1.element-ui 样式改不了
答:1.通过自己在标签里添加类名层叠不了,通过F12 把类名复制过来取层叠有效
2.循环的时候加入key ,不加有过报错的情况,查了下:在vue高版本中会报错
答:key属性需要唯一,理想的 key 值是每项都有唯一id,全局不需唯一,但在一个循环中需要唯一。
3.引入图片 以为写个地址就行看,结果失败了,最后加入了requer()就OK了
答:因为放在template模板里会被webpack打包所以可以,而放在data或者动态赋值,图片路径只是一个字符串webpack不会处理所以引用不到。
4.本地开发跨域问题
答:config -- proxyTable --- changeOrigin: true, // 是否启用跨域
5.打包的时候资源引用错误就是那个地址
答:打包后部署服务器的时候报错 是个路径问题,把config里index.js build 大括号里 assetsPublicPath 的 /根路径,改成./ 相对路径
6.vue-router路由参数刷新消失的问题
答:params传参可以传过去,但是不会显示在url上,在此刷新数据本页数据会没有,query会在url上
7.刚建项目的时候安装sass出了问题,报错
Css3 透视
perspective :100 ;
值越小 和眼睛越近越小越明显,值越大越不明显
ES6 特性
let、const
箭头函数
扩展运算符
默认参数
模板字符串
解构赋值
pormise
C3动画怎么写?
animation:name duration iteration-count
动画的名字 动画持续的时间 动画的播放次数 infinite(无限循环)
animation:动画名 5s;
@keyframes 动画名
{
0% {background:red;}
100% {background:green;}
}
vue-router 钩子
全局的钩子
beforeEach(to,from,next)
- 页面加载之前
- 页面跳转之前权限认证,访问拦截
afterEach(to,from,next)
- 页面加载之后
组建内的导航钩子
beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave,直接在路由组件内部进行定义的
POST请求axios设置什么
headers: {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'};
请求头,一般采用x-www-form-urlencoded
发送的数据要序列化,特别注意啊,因为axios默认的格式是Request Payload。
浏览器输入网址后经历了什么
- 输入网址回车
- 从dns服务器获取服务器ip
- 通过ip向服务器建立tcp三次握手连接
- 向服务器发送请求
- 服务器接收到请求,处理请求
- 服务器处理完请求向浏览器响应
- 浏览器接收到服务器的响应 解析
- 生成dom树 浏览器渲染页面
vuex
1. 什么是vuex :
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。
2. 他的属性方法有哪些?每个阶段是干嘛的?
? State、mutations、getters、actions、 modules
Store
表示对Vuex对象的全局引用。组件通过Store来访问Vuex对象中的State
? State
Vuex对象的状态,即其所拥有的数据
? Getter
相当于Store的计算属性。因为就像计算属性一样,Getter的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。下面会说到具体的使用场景
? Mutation
定义了对State中数据的修改操作。组件使用State中的数据的时候并不能直接对数据进行修改操作,需要调用Mutation定义的操作来实现对数据的修改。这也是Vuex定义中所说的用相应的规则来让数据发生变化的具体实现
? Action
Mutation中定义的操作只能执行同步操作,Vuex中的异步操作在Action中进行,Action最终通过调用Mutation的操作来更新数据
? Module
Store和State之间的一层,便于大型项目管理,Store包含多个Module,Module包含State、Mutation和Action
TCP三次握手
浏览器要向服务器发送请求之前
1.浏览器先要问下服务器你在吗?
2.服务器回复浏览器回复说我在确认信息
3.浏览器说 我收到了你的回应信息了
然后在发送请求
怎么解决代码冲突:
通过报错百度解决方法,因为碰到过好几次后,每个人负责不同的页面,在有代码的页面只增不减
如果想要保留本地修改的话,使用:
1、直接解决冲突:使用当前|使用传入
2、
git stash //隐藏本地修改
git pull //拉取服务器代码
git stash pop //取消本地代码隐藏
11.18下午 电话面试 平安
-
高德经纬度怎么获取、转换坐标值的?地图路径规划?
-
权限是怎么做的?
用户登录根据先判断本地有没有token,如果有token并且是当前登录的账号,根据后台返回的数据渲染当前角色的显示内容,如果没有token 去后台请求,得到相应角色的权限
-
怎么控制不同用户 某个按钮 功能 展示和不展示?
在用户登录后根据用户id读取用户的所有权限,比如说某个是删除按钮 本用户没有,让后台返回一个参数,deleteBtn:0/1,如果是0就不显示,如果是1就显示按钮
-
角色管理 具体实现了什么功能?
角色管理实现了角色的增删改查,冻结 冻结:前端只管冻结,要是冻结后这个账号的数据在数据库,这个账号登录的时候后台返回参数 账号被冻结,自动跳到登录页 弹出页面提示 这个账号被冻结信息。
-
和后端交互的协议?
http WebSocket
-
WebSocket ?
建立在tcp协议上的全双工通信协议,一般用在网站里面作为用户和后台人员沟通的或者是用来通讯的
-
Ajax ?
// 1. 创建一个 XMLHttpRequest 类型的对象 —— 相当于打开了一个浏览器 var xhr = new XMLHttpRequest() // 2. 打开与一个网址之间的连接 —— 相当于在地址栏输入访问地址 xhr.open('GET', '/time') // 3. 通过连接发送一次请求 —— 相当于回车或者点击访问发送请求 xhr.send(null) // 4. 指定 xhr 状态变化事件处理函数 —— 相当于处理网页呈现后的操作 xhr.onreadystatechange = function () { // 通过 xhr 的 readyState 判断此次请求的响应是否接收完成 if (this.readyState === 4) { // 通过 xhr 的 responseText 获取到响应的响应体 console.log(this.responseText) } }
readyState 状态描述 说明 0 UNSENT 代理(XHR)被创建,但尚未调用 open()
方法。1 OPENED open()
方法已经被调用,建立了连接。2 HEADERS_RECEIVED send()
方法已经被调用,并且已经可以获取状态行和响应头。3 LOADING 响应体下载中, responseText
属性可能已经包含部分数据。4 DONE 响应体下载完成,可以直接使用 responseText
。 实时显示车在哪里?
?
-
MVC MVVM ?
M 模型 V 视图 VM 视图模型 是mvvm的核心,数据和视图不能直接通信,需要靠vm当个桥梁连接m和v,vm把数据模型转化成为是视图,也可以把用户在界面操作后转化为数据,形成双向数据绑定。 数据双向绑定有很重要的方法Object.difneproty() 给每个数据设置set 和get 当数据发生改变,watcher劫持到了数据通知模板解析更新视图 --------------------------------------------------------------------------------------- MVC M 模型 V 视图 C 控制器 页面业务逻辑 mvc 是单向通信
less 引入项目的流程?
npm i less
然后在 webpack.base.conf.js里面配置 less-loader 代码
npm i less;
main.js 里面引入代码 {test:/\.less$/,loader:"style-loader!css-loader!less-loader"}
-
怎么解决同事之间代码冲突?
1.有很多>>>>>> 和同事商量下 2.其他同事写了代码我我也在我的区域写了代码 git push 不上去,先隐藏本地代码 git stach ,在git pull 拉取,最后取消隐藏本地代码
-
怎么使用webpack 打包 流程?
npm run build 1.路径改成./ 2.productionSourceMap:false 生成map文件改成false
-
浏览器兼容器的问题?
1.不同浏览器padding和margin不同 解决方案:{margin:0,padding:0} 2.
字符串转json?
访问后台用什么 请求?
-
把form-data表单请求后端 怎么设置的?
Content-Type:multipart/form-data
11.18 下午 电话面试 海康威视
-
C3特性
animation transtaion transform border-shadow border-image rgba border-radio flex 盒模型: box-sizing:border-box box-sizing:content-box 媒体查询
C3透视
定义一个C3动画
Echarts 地图哪里的?
Echarts 数据量很大的情况 怎么办?
-
用Echarts 心得 ?
tooltip 超出 div 限制 问题:在做条形图时,当div容器较小时,tooltip的内容又较长时,会导致tootip文字被遮挡。 仔细查阅Echarts文档,可以发现有个tooltip.confine的属性,设置为true时可保证toolip的内容限制在图表的区域范围内。
-
setTimeout 和 Promise 区别?
Promise 就是一个对象,用来传递异步操作的消息。有三种状态:pending(进行中),resolved(已完成)和rejected(失败)有了promise对象,就可以将异步操作以同步操作的流程表示出来,避免了层层嵌套的回调函数。
-
async await 是一种什么样的机制?
ES6 新特性
-
箭头函数 this特性
this指向外层作用域的this
```
-
const var let 提升 定义 赋值
var 可以变量提升 let const 不可以 var 可以重新定义 let const 不可以 const的值赋值简单数据类型 值不可更改,赋值复杂数据类型 值可以更改 const 必须赋值 不能用null替代
-
node用过什么框架?
express
js事件循环机制
?
- 居中布局
?
- MVC MVVM 区别
11.19上午 全球同方人寿
- for循环删除列表某一项
11.19下午 智昌科技
- Echarts 处理tab切换数据改变不了问题
- 怎么修改Element-UI 样式
- element-ui 时间格式化
- async?await?捕捉错误?怎么捕捉?catch
- token?过期之后跳回到登录页,写在哪里?
- token存到哪里?localstor
- token怎么发给后台?
- css两端布局
- 父组件?传值给多层子组件?怎么传?
11.19 晚上 博彦科技 电话面试
-
对vue的理解 介绍vue
-
vue用什么脚手架?
-
vue脚手架里怎么用sass?
-
在vue哪个生命周期中获取DOM
-
vue的指令5个
-
v-model 干嘛用的 v-model和v-bind 区别?
-
v-show v-if区别?
-
父子组件的通信?
-
非父子组件传值?
什么时候用vuex ?
-
vue 中 data 为什么是一个函数 不是一个对象?
'abc' ? '真' : '假' //真 'abc' === true //false 'abc' == true //false
-
Promise干嘛用?
异步回调有4中 1.callback 回调函数 2.generator + co 库 3.promise 4.async + await
-
给vue 里的data 的对象添加一个属性 会发生什么?如何解决?
发生数据丢失?
-
优化性能?
-
本地缓存 localStorage、sessionStorage、cookie、session对比
-
Ajax能不能跨域? 存在同源策略?
11.21上午 工商 现场面试
- MVVM MVC
- 路由导航守卫
- Vue生命周期钩子函数
- 项目中遇到过哪些困难?
- webpack在实际项目中怎么配置?
11.23 下午 电话面试
工作中遇到了什么困难?怎么解决的?
ES6新特性
兼容问题怎么解决的?
-
Vue框架和jQuery的区别是什么?
最明显的就是思维方式不同,jquery 是以操作dom为主,做了数据处理之后还需要对dom进行操作。vue.js是以操作数据为主,不操作dom,也就是传说中的双向数据绑定,你只需要操作数据就好,dom自动更新
-
怎么理解ajax?
Ajax是一套用来发异步请求的技术,它可以让我们不用跳转网页就能发请求,所以我们也把ajax叫局部请求技术。 Ajax应用程序的优势在于: 1. 通过异步模式,提升了用户体验 2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用 3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。 2、AJAX最大的特点是什么。 Ajax可以实现动态不刷新(局部刷新) 就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。
-
事件委托
事件委托,是利用了冒泡的原理,把事件委托给子孙元素的祖先元素,当点击子孙元素后,由于事件冒泡,祖先元素会捕获到该事件,并可以使用事件对象.target来获取是最先触发的是哪一个子孙元素,从而实现了事件的绑定
-
null与undefined的区别?
console.log(null==undefined)//true console.log(null===undefined)//false null表示"没有对象",即该处不应该有值。典型用法是: (1) 作为函数的参数,表示该函数的参数不是对象。 (2) 作为对象原型链的终点。 undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是: (1)变量被声明了,但没有赋值时,就等于undefined。 (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。 (3)对象没有赋值的属性,该属性的值为undefined。 (4)函数没有返回值时,默认返回undefined。
-
项目中遇到过什么问题?
-
$toute 和 $router routes
$router是VueRouter的实例,在script标签中想要导航到不同的URL,使用$router.push方法。 返回上一个历史history用$router.to(-1) $route为当前router跳转对象。里面可以获取当前路由的name,path,query,parmas等。 router可以理解为一个容器,或者说一种机制,它管理了一组route。简单来说,route只是进行了URL和函数的映射,而在当接收到一个URL之后,去路由映射表中查找相应的函数,这个过程是由router来处理的。 route,它是一条路由。 routes,是一组路由。
vue-router有哪几种导航钩子?(具体怎么用的)
三种,
第一种:是全局导航钩子:router.beforeEach(to,from,next),作用:跳转前进行判断拦截。
第二种:组件内的钩子
第三种:单独路由独享组件
用到vue-router的导航钩子的时候,发现有三类:
1 、全局导航钩子 // 全局导航钩子 直接挂载在router实例上的
beforeEach
beforeResolve
afterEach
2 、某个路由独享的导航钩子
beforeEnter // 直接在router的路由配置中使用
3 、路由组件上的导航钩子 // 定义一个vue模板,这个模板被router的配置文件的component使用
beforeRouteEnter // 某个路由独享的导航钩子beforeEnter
beforeRouteUpdate (2.2 新增)
beforeRouteLeave