记5.25面试的几道题(vue 小程序)
Posted 十九万里
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记5.25面试的几道题(vue 小程序)相关的知识,希望对你有一定的参考价值。
今天面了两面,第一个是一家外包公司,主要vue和小程序的,第二家没啥技术含量,会写网站就行被我拒了,下面是我记的一些面试题
1、vue生命周期函数
vue生命周期一共四个阶段:
1、实例创建
2、DOM渲染
3.数据更新
4、销毁实例
主要有8个钩子函数:
1:beforeCreat—创建前
触发的行为:vue实例的挂载元素$el和数据对象data都为undefined,还未初始化。
在此阶段可以做的事情:加loading事件
2:created——创建后
触发的行为:vue实例的数据对象data有了,el还没有
在此阶段可以做的事情:解决loading,请求ajax数据为mounted渲染做准备
3:beforeMount 渲染前
触发的行为:vue实例的el和data都初始化了,但还是虚拟的dom节点,具体的data.filter还未替换
4:mounted 渲染后
触发的行为:vue实例挂载完成,data.filter成功渲染
在此阶段可以做的事情:配合路由钩子使用
5:beforeUpdate 更新前
触发的行为:data更新时触发
6: updated 更新后
触发的行为:data更新时触发
在此阶段可以做的事情:数据更新时,做一些处理(此处也可以用watch进行观测)
7:beforeDestroy 销毁前
触发的行为:组件销毁时触发
在此阶段可以做的事情:可向用户询问是否销毁
8:destroy 销毁后
触发的行为:组件销毁时触发,vue实例解除了事件监听以及和dom的绑定(无响应了),但DOM节点依旧存在
在此阶段可以做的事情:组件销毁时进行提示
2、跨域及解决方案
当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域
解决方案:
1、jsonp
2、cors
vue代理
在请求头中设置字段,前后端都需要设置,
3、跨文档通信 API:window.postMessage()
4、设置document.domain解决无法读取非同源网页的 Cookie问题
什么是跨域?跨域解决方法
3、自己封装过什么东西
这点之前没注意,回来之后找了几个准备练手一下
封装select:
Element-UI二次封装实现TreeSelect 树形下拉选择组件
封装axios
封装定时器
封装日期格式装换
4、axios是什么,是怎么实现的
axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端。简单的理解就是ajax的封装
在项目中的使用是先使用vue-cli安装axios依赖包,然后再vue.config.js中配置
自己封装http。
axios基本用法
vue.cli项目封装全局axios,封装请求,封装公共的api和调用请求的全过程
5、小程序扫码,分享朋友圈,客服功能
小程序使用的都是微信原生的接口:
扫码:wx.scanCode.获取到数据后,在把失败或者成功的回调函数掉给接口
微信小程序 扫码功能
分享朋友圈:wx.onShowAppMessage 和wx.onShowTimeLine
微信小程序实现分享到朋友圈
6、JQ
先放这,晚上回来复习
jQuery面试题
7、promise
Promise 是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve这几个方法,原型上有then、catch等方法
有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)
可以使用async awite 来简化promise
ES6 Promise用法小结
8、vue2.0和3.0的区别
1、项目目录结构
2.配置项
3.渲染方式
4.按需导入
5.支持ts的使用
Vue3.0新特性及使用方法
Vue2.0和Vue3.0的区别
9.es6的特点,es7.es8有哪些新特性
es6的特点我就不写了
es7:
1、Array.prototype.includes(value[, fromIndex])
2、求幂运算符()
3、函数作用域中严格模式的变更**
ES7~8新特性
es8:
异步函数(Async functions)
es5 es6 es7 es8新特性
10、canvas画图会不会
11、用过模板引擎吗
template:
浅析嵌入式 JS 模板引擎之EJS
以上是关于记5.25面试的几道题(vue 小程序)的主要内容,如果未能解决你的问题,请参考以下文章