首页IT科技博学谷账号分享(【博学谷学习记录】超强总结,用心分享 | vue面试1)

博学谷账号分享(【博学谷学习记录】超强总结,用心分享 | vue面试1)

时间2025-09-18 14:27:44分类IT科技浏览5504
导读:vuex的原理是什么? 它采用 集中式存储管理 应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 每一个 Vuex 应用的核心就是 store,里面又包括: (...

vuex的原理是什么?

它采用 集中式存储管理 应用的所有组件的状态                ,并以相应的规则保证状态以一种可预测的方式发生变化                。 每一个 Vuex 应用的核心就是 store                        ,里面又包括: (1state(数据):用来存放数据源        ,就是公共状态; (2)getters(数据加工):有的时候需要对数据源进行加工        ,返回需要的数据; (3)actions(事件):要执行的操作                        ,可以进行同步或者异步事件 (4)mutations(执行):操作结束之后                ,actions通过commit更新state数据源(同步操作) (5)modules:使用单一状态树        ,致使应用的全部状态集中到一个很大的对象                        ,所以把每个模块的局部状态分装使每一个模块拥有本身的 state                、mutation                        、action        、getters                、甚至是嵌套子模块;

vue组件通信方式

props 父子组件通信 通过emite触发自定义事件 兄弟组件通信 EventBus $ref通过获取节点通信 依赖插入provide/reject 多层嵌套: $attrs, $listener Vuex状态管理器 localStorage/SessionStorage持久化存储

localstorage和sessionstorage的区别

存储时间:localStorage的生命周期是永久的                ,sessionStorage的生命周期是在仅在当前会话下有效                        。关闭就没有了,只在当前标签可用                        ,当前标签的iframe中且同源可以共享 存储大小:5MB 存储位置:都保存在客户端 存储类型:字符串类型 获取方式:localStorage:window.localStorage;;sessionStorage:window.sessionStorage 应用场景:localStoragese:常用于长期登录(+判断用户是否已登录)                        ,适合长期保存在本地的数据        。sessionStorage:敏感账号一次性登录

wather和compents的区别

共同点:都是用于监听数据变化的属性

不同点:

computed 如果函数所依赖的属性没有发生变化,从缓存中读取                , 必须有return返回 watch中的函数是不需要调用的                        ,只会监听数据的值是否发生改变        ,而不会去监听数据的地址是否发生改变                ,要深度监听需要配合deep:true属性使用                        , immediate:true 页面首次加载的时候做一次监听

应用场景:computed 应用于数据计算        ,watch用于数据监听

错误的code码

200 成功处理请求 300 重定向        ,完成请求                        ,需要进一步操作 400 请求错误                ,语法错误或者权限错误 500 服务器错误

vue的生命周期函数

Vue2

`beforeCreate`阶段data                        、methods        、computed以及watch上的数据和方法都不能被访问                。 `created`在实例创建完成后发生        ,当前阶段已经完成了数据观测                        ,也就是可以使用数据                ,更改数据,在这里更改数据不会触发updated函数                        。可以做一些初始数据的获取                        ,在当前阶段无法与Dom进行交互                        ,如果非要想,可以通过vm.$nextTick来访问Dom        。 `beforeMount`发生在挂载之前                ,在这之前template模板已导入渲染函数编译        。而当前阶段虚拟Dom已经创建完成                        ,即将开始渲染                        。在此时也可以对数据进行更改        ,不会触发updated                。 `mounted`在挂载完成后发生                ,在当前阶段                        ,真实的Dom挂载完毕        ,数据完成双向绑定        ,可以访问到Dom节点                        ,使用$refs属性对Dom进行操作        。 `beforeUpdate`发生在更新之前                ,也就是响应式数据发生更新        ,虚拟dom重新渲染之前被触发                        ,你可以在当前阶段进行更改数据                ,不会造成重渲染                        。 `updated`发生在更新完成之后,当前阶段组件Dom已完成更新                。要注意的是避免在此期间更改数据                        ,因为这可能会导致无限循环的更新。 `beforeDestroy`发生在实例销毁之前                        ,在当前阶段实例完全可以被使用,我们可以在这时进行善后收尾工作                ,比如清除计时器                        。 `destroyed`发生在实例销毁之后                        ,这个时候只剩下了dom空壳                        。组件已被拆解        ,数据绑定被卸除                ,监听被移出                        ,子实例也统统被销毁。

vu3

`beforeCreate``create``setup`取代 `beforeDestroy``destroyed``beforeUnmount``unmounted`取代 `errorCaptured`: 在捕获了后代组件传递的错误时调用                。 `renderTracked`:(仅开发时用)在一个响应式依赖被组件的渲染作用追踪后调用                        。 `renderTriggered`: (仅开发时用) 在一个响应式依赖被组件触发了重新渲染之后调用        。 `activated`: 若组件实例是`<KeepAlive>`缓存树的一部分        ,当组件被插入到 DOM 中时调用                。 `deactivated`: 若组件实例是`<KeepAlive>`缓存树的一部分        ,当组件从 DOM 中被移除时调用                        。 `serverPrefetch`: 当组件实例在服务器上被渲染之前要完成的异步函数        。

常用到的有哪些组件封装

1- 正常的封装组件                        ,导入组件 2- 通过slot 封装组件                , 3- 全局注册组件Vue.component()

混入模式

flex布局

# nowrap不换行 wrap换行 wrap-reverse:倒叙换行 flex-wrap: nowrap

ts

unknow和any的区别

any意味着ts不会对它进行任何类型校验 在`unknown`没有被断言或细化到一个确切类型之前        ,是不允许在其上进行任何操作的        。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
系统管理命令(chfn命令 – 系统管理) 网站搜索引擎优化工具有哪些(掌握SEO优化,让你的网站跻身搜索前沿)