2024前端面试题和笔试题——Vue(1)

  1. 对 MVVM 的理解

MVVM分为Model、View、ViewModel三者。
Model:代表数据模型
View:代表视图
ViewModel:连接视图和模型,实现数据的双向绑定

  1. Vue 实现数据双向绑定的原理

采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。当把一个普通的 JavaScript 对象传给 Vue 作为它的 data 选项时,Vue 将遍历它的属性,用 Object.defineProperty 将它们转化为 getter/setter,用户看不到getter/setter,但是在内部它们让 Vue 追踪依赖,在属性被访问和修改时通知变化。
1、实现一个数据监听器Observer,能够对数据对象的所有属性进行监听,如有变动可拿到最新值并通知订阅者
2、实现一个指令解析器Compile,对每个元素节点的指令进行扫描和解析,根据指令模板替换数据,以及绑定相应的更新函数
3、实现一个Watcher,作为连接Observer和Compile的桥梁,能够订阅并收到每个属性变动的通知,执行指令绑定的相应回调函数,从而更新视图

  1. 对 webpack 的了解

前端打包工具…

  1. 对前端工程化的理解
  2. 对模块化,组件化的理解
  3. 使用 vue-lic 搭建一个 Vue 的项目
  4. 对 npm 的了解

第三方库的管理工具

  1. ES6 提出了哪些新概念

1.var let
2.箭头函数
3.模板字符串(反引号)
4.解构赋值
5.import,export
6.class

  1. HTTP 常见的状态码

400 客户端请求有语法错误,不能被服务器所理解
403 服务器收到请求但是拒绝提供服务|
200 客户端请求成功|
404 请求资源不存在 eg:输入错误的URL |
500 服务器发生不可预期的错误 |
503 服务器当前不能处理客户端请求,一段时间后可能恢复正常

  1. 数组的常用方法,及使用
  2. let ,var ,const 之间的区别

var声明变量可以重复声明,而let不可以重复声明
var是不受限于块级的,而let是受限于块级
var会与window相映射(会挂一个属性),而let不与window相映射
var可以在声明的上面访问变量,而let有暂存死区,在声明的上面访问变量会报错
const声明之后必须赋值,否则会报错
const定义不可变的量,改变了就会报错
const和let一样不会与window相映射、支持块级作用域、在声明的上面访问变量会报错

  1. 跨域问题 如何解决

jsonp

  1. 如何解决浏览器的兼容问题
  2. 对于 数据安全 的措施

md5,对称加密,非对称加密

  1. Vue 全家桶——vue,vue-router,vuex
  2. vuex 的五个核心属性

state,getter,mutations,actions,modules

  1. v-show 和 v-if 的区别
  2. 父子组件的传值

父组件传值给子组件:
第一步:在父组件中 v-bind:parentmsg=“父组件的data值”(parentmsg 这个名字可自定义)
第二步:在子组件中 props:[‘parentmsg’]
{{parentmsg}}这样就可以使用 父组件的值
父组件把方法传递给子组件:
第一步:在父类组件中 @func=父组件方法名 (方法名不带‘()’,func可自定义)
第二步:在子组件方法中写 this.$emit(‘func’,方法参数) (func可自定义,无参方法‘方法参数’就别写)

  1. 路由跳转的方式

1.<router-link to='home'> router-link
2. router.push('/home')

  1. Vue 实例的生命周期
  2. vue-router 中 hash 模式和 history 模式的区别

最直观的区别是在 url 中 hash 带了一个 # 而 history 是没有的;
history 需要后端提供支持;
history 跳转后刷新或者回跳会报错

  1. 对 ui 框架的使用

element-ui,iview,ionic

  1. angular 和 vue 的对比
  2. 原生 Ajax 如何发送请求
  3. 闭包的概念

函数嵌套函数,内部函数引用外部函数变量,外部函数调用之后,其对象本该被销毁,但闭包的存在,使我们仍然可访问外部函数的变量对象,导致垃圾回收机制没有生效,变量被保存下来,内存泄漏。

  1. Vue 中发送请求的方式

vue-router

  1. axios 怎样发送请求
  2. 前端缓存

cookie, WebStorage

  1. CSS 常用的布局
  2. 你用过的 CSS 框架

less

  1. 对单向数据流的理解
  2. 计算属性(computed)和 watch 的区别
  3. 回调函数
  4. Promise 三种状态

pending、fulfilled、rejected(未决定,履行,拒绝),同一时间只能存在一种状态,且状态一旦改变就不能再变。promise是一个构造函数,promise对象代表一项有两种可能结果(成功或失败)的任务,它还持有多个回调,出现不同结果时分别发出相应回调。
1.初始化,状态:pending
2.当调用resolve(成功),状态:pengding=>fulfilled
3.当调用reject(失败),状态:pending=>rejected

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值