vue基础面试题

1、vue生命周期

vue实例从创建到销毁的过程称为vue的生命周期。
beforeCreate: vue实例的挂载元素el和数据对象data还未初始化;初始化内置函数和生命周期函数。

console.log(this.$el); // undefined
console.log(this.$data); // undefined

created: 挂载元素el还没有,dom未挂载;数据对象data可以访问,可做一些异步请求,对数据赋值。
beforeMount: 挂载元素el和数据对象都有了,还是虚拟dom
mounted: vue实例挂载到真实dom元素上,可以操作dom元素
beforeUpdate: 响应式数据更新时调用,发生在虚拟dom打补丁前。适合在更新前访问当前dom,比如移除已添加的事件监听器。
updated: 虚拟dom重新渲染和打补丁后调用,dom已更新,避免在此处更新数据,防止死循环。
beforeDestory: vue实例销毁前调用,此时vue实例还可以通过this访问,处理解绑事件和清除定时器等。
destoryed: vue实例销毁后调用,所以子实例也被销毁。

2、vue响应式原理(vue双向数据绑定原理)

数据劫持结合发布者订阅者模式;
数据劫持:通过object.defineProperty()(vue3中用proxy做代理)中set/get方法,对data中所有属性进行劫持监听,设置监听器Observer。
发布者:如果属性发生变化需要通知订阅者看是否需要更新,发布者是订阅者集合的管理数组,在Observer和watcher之间统一管理。
compile:指令解析器对每个节点元素扫描和解析,把相关指令初始化为一个订阅者,并替换模板数据和绑定相应函数。
订阅者:当watcher接收到相应属性变化是,执行对应的更新函数,更新视图。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些关于Vue的经典基础面试题的回答: 1. 前端采用的语言为HTML、CSS和JavaScript前端采用的框架是Vue.js。后端采用的语言为Golang,后端采用的框架为Gin。 2. Vue-router的动态路由是指根据传递的参数动态生成路由。获取传过来的值可以使用$route对象中的params属性或query属性来获取。 3. Vue-router有三种导航钩子:全局前置守卫、全局解析守卫和全局后置钩子。全局前置守卫通过router.beforeEach()方法来定义,在跳转之前执行。全局解析守卫通过router.beforeResolve()方法来定义, 在解析路由之前执行。全局后置钩子通过router.afterEach()方法来定义,在跳转之后执行。 4. v-model是Vue.js中的指令,用于在表单元素和Vue实例的数据之间建立双向绑定。它可以通过v-model指令将表单输入和Vue实例的数据属性进行双向绑定,实现数据的实时同步。 5. Axios是一个基于Promise的HTTP客户端库,用于发送HTTP请求。使用Axios可以通过发送GET、POST等请求与后端进行数据交互。实现登录功能的流程可以通过发送POST请求向后端发送用户的登录信息,然后根据后端返回的响应进行相应的处理,比如跳转到登录成功页面或者显示登录失败的提示信息。 这些是关于Vue的经典基础面试题的回答。希望对你有帮助!<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [go语言恶意代码检测系统-对接前端可视化与算法检测部分](https://download.csdn.net/download/liufang_imei/88222624)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [vue面试题基础面试题](https://download.csdn.net/download/weixin_42979948/88222466)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值