当前位置: 首页 > Web前端 > HTML5

前端东西九(VUE)

时间:2023-04-05 21:37:26 HTML5

https://appf96umjwe7950.pc.xiaoe-tech.com/detail/p_603eeeb8e4b087d11d4e47bc/6谈谈你对MVVM的理解?MVVM模式的作用:解决分层。MVC:前期工作在后端。后端处理模板和数据返回给浏览器,浏览器渲染。modelviewcontrollercontroller:处理业务逻辑(路由)model:dataview:渲染视图MVP:好处:隐藏controller,使用mvvm简化data-to-view绑定的过程,并且可以自动监听变化,手动获取数据操作view,因为controller负载臃肿,更难维护,数据不经controller处理,自动映射到view。解决了控制器膨胀的问题。请谈谈对Vue2和Vue3响应式数据的理解。Vue2使用Object.defineProperty来劫持和重新定义所有属性。它只能劫持现有的属性。=>Array:对于多层对象,需要递归和重定义,所以性能较差,vue2的问题:属性必须在对象中才能劫持递归vue3不用重写get和set来判断是否是一个取值时的对象。希望响应式的可以使用对应的api响应式数据:数据变化时通知我。双向数据绑定Vue中如何检测数组变化改变数组本身可以改变数组,但是无法监听数组长度函数劫持Vue中如何收集依赖?如何理解Vue中模板编译的原理Vue生命周期钩子是如何实现的?回调函数将其放入一个数组中,合成整个数组。Vue顺序执行的生命周期方法有哪些?请求在哪一步发送,为什么?Vue.mixin的使用场景和原理。vuexvue-路由器。为什么vue组件数据一定要是函数?唯一性确保组件之间的数据不受影响。nextTick在哪里使用?原理是?确保更新完成后获取内容。更新策略是异步的,不代表异步。它是异步的但是将内容维护在一个数组中,最后按顺序执行。第一次会启动一个异步任务,后续的更新都放在数组中是不会启动另一个异步任务的。为什么要使用异步更新,希望改完之后,执行原理是promise=>settimeoutcomputed和watch底层实现的区别取决于watcher,功能项不同。如果手表的数据没有变化,则不会重新计算手表。如果数据发生变化,它将执行回调。计算属性有更多的缓存。Computed仅在获取值时执行initComputed。计算属性实际上是一种方法。核心object.definePropertyget函数本身就是一个属性,写成一个函数来计算属性watcher,加上懒加载属性lazy:true,第一次默认不执行。initWatchvue中一共有三种watcher:renderingwatchercomputedattributewatcher(lazy:true)userwatcher