概述
1. axios的拦截器的作⽤?应⽤场景都有哪些?
- ⾸先呢,axios拦截器是axios给我们提供的两个⽅法,通过这两个⽅法我们可以对请求发送之前以及响应之后进⾏逻辑的再次处理(拦截). 这两个拦截器不需要⼿动触发,只要发送http请求的时候就会⾃动触发.
- 我在项⽬中经常通过拦截器发送token, 对token进⾏过期处理,以及进⾏其他的⼀些操作
2. 说⼀下vue和jquery的区别?
- ⾸先呢 jquery他是⽤js封装的⼀个类库,主要是为了⽅便操作dom元素
- ⽽vue他是⼀个框架,并且呢,他会从真实dom构建出⼀个虚拟的dom树,通过di!算法渲染只发⽣改变的dom元素,其他的相同的dom元素不⽤在重新渲染.
- ⽽使⽤jquery去改变dom元素的时候,即使有相同的dom元素也会重新渲染
3. vue中data发⽣变化,视图不更新如何解决?
-
为什么data发⽣变化,视图不更新? 因为Vue实例中的数据是响应式的**
-
⽽我们新增的属性并不是响应式的,由于受现在JavaScript的限制,Vue⽆法检测到属性的新增或删除。所以有时⽆法实时的更新到视图上。
-
所以我在项⽬中遇到这类问题的时候⼀般是通过this.方法去解决 set⽅法⼀共有三个参数,分别是⽬前属性,新增属性,新增的值.
以上就是我对视图不更新的理解.
4. 为什么vue中data必须是⼀个函数?
- 如果data是⼀个函数的话,这样每复⽤⼀次组件,就会返回⼀份新的data,类似于给每个组件实例创建⼀个私有的数据空间,让各个组件实例维护各⾃的数据。
- ⽽单纯的写成对象形式,就使得所有组件实例共⽤了⼀份data,就会造成⼀个变了全都会变的结果。
所以说vue组件的data必须是函数。这都是因为js的特性带来的,跟vue本身设计⽆关。
5.MVVM模式的优点以及与MVC模式的区别?
MVVM模式的优点:
1、低耦合: 视图(View)可以独⽴于 Model 变化和修改,⼀个 ViewModel 可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
2、可重⽤性: 你可以把⼀些视图逻辑放在⼀个ViewModel⾥⾯,让很多 view 重⽤这段视图逻辑。
3、独⽴开发: 开发⼈员可以专注于业务逻辑和数据的开发(ViewModel),设计⼈员可以专注于⻚⾯设计。
4、可测试: 界⾯素来是⽐较难于测试的,⽽现在测试可以针对ViewModel来写。
MVVM 和 MVC 的区别:
mvc 和 mvvm 其实区别并不⼤。都是⼀种设计思想。
主要区别
mvc 中 Controller演变成 mvvm 中的 viewModel,
mvvm 通过数据来显示视图层⽽不是节点操作。
mvvm主要解决了:
mvc中⼤量的DOM 操作使⻚⾯渲染性能降低,加载速度变慢,影响⽤户体验。
6. 怎样理解 Vue 的单向数据流?
数据总是从⽗组件传到⼦组件,⼦组件没有权利修改⽗组件传过来的数据,只能请求⽗组件对原始数据进⾏修改。这样会防⽌从⼦组件意外改变⽗级组件的状态,从⽽导致你的应⽤的数据流向难以理解。
注意:在⼦组件直接⽤ v-model 绑定⽗组件传过来的 prop 这样是不规范的写法 开发环境会报警告
如果实在要改变⽗组件的 prop 值 可以再 data ⾥⾯定义⼀个变量 并⽤ prop 的值初始化它 之后⽤$emit 通知⽗组件去修改
7. 虚拟 DOM 是什么? 有什么优缺点?
什么是虚拟dom?
由于在浏览器中操作 DOM 是很昂贵的。频繁的操作 DOM,会产⽣⼀定的性能问题. 所以在vue中将真实的DOM节点抽离成⼀个虚拟的DOM树,这个虚拟的DOM树就是虚拟DOM.
优点:
保证性能下限:
框架的虚拟 DOM 需要适配任何上层 API 可能产⽣的操作,它的⼀些 DOM 操作的实现必须是普适的,所以它的性能并不是最优的;但是⽐起粗暴的 DOM 操作性能要好很多,因此框架的虚拟 DOM ⾄少可以保证在你不需要⼿动优化的情况下,依然可以提供还不错的性能,即保证性能的下限;
⽆需⼿动操作 DOM:
我们不再需要⼿动去操作 DOM,只需要写好 View-Model 的代码逻辑,框架会根据虚拟 DOM 和 数据双向绑定,帮我们以可预期的⽅式更新视图,极⼤提⾼我们的开发效率;
跨平台:
虚拟 DOM 本质上是 JavaScript 对象,⽽ DOM 与平台强相关,相⽐之下虚拟 DOM 可以进⾏更⽅便地跨平台操作,例如 服务器渲染、weex 开发等等。
缺点:
⽆法进⾏极致优化:
虽然虚拟 DOM + 合理的优化,⾜以应对绝⼤部分应⽤的性能需求,但在⼀些性能要求极⾼的应⽤中虚拟DOM ⽆法进⾏针对性的极致优化。⾸次渲染⼤量 DOM 时,由于多了⼀层虚拟 DOM 的计算,会⽐ innerHTML 插⼊慢
8. Vue的di!算法原理是什么?
Vue的di!算法是平级⽐较,不考虑跨级⽐较的情况。内部采⽤深度递归的⽅式+双指针⽅式⽐较
先⽐较两个节点是不是相同节点
相同节点⽐较属性,复⽤⽼节点
先⽐较⼉⼦节点,考虑⽼节点和新节点⼉⼦的情况
优化⽐较:头头、尾尾、头尾、尾头
⽐对查找,进⾏复⽤
9. Vue.use是⼲什么的?
vue.use 是⽤来使⽤插件的。我们可以在插件中扩展全局组件、指令、原型⽅法等。 会调⽤ install`⽅法将Vue的构建函数默认传⼊,在插件中可以使⽤vue,⽆需依赖vue库
10.组件写name有啥好处?
增加name属性,会在components属性中增加组件本身,实现组件的递归调⽤。
可以表示组件的具体名称,⽅便调试和查找对应的组件。
最后
以上就是认真冬日为你收集整理的【无标题】1. axios的拦截器的作⽤?应⽤场景都有哪些?2. 说⼀下vue和jquery的区别?3. vue中data发⽣变化,视图不更新如何解决?4. 为什么vue中data必须是⼀个函数?5.MVVM模式的优点以及与MVC模式的区别?6. 怎样理解 Vue 的单向数据流?7. 虚拟 DOM 是什么? 有什么优缺点?8. Vue的di!算法原理是什么?9. Vue.use是⼲什么的?10.组件写name有啥好处?的全部内容,希望文章能够帮你解决【无标题】1. axios的拦截器的作⽤?应⽤场景都有哪些?2. 说⼀下vue和jquery的区别?3. vue中data发⽣变化,视图不更新如何解决?4. 为什么vue中data必须是⼀个函数?5.MVVM模式的优点以及与MVC模式的区别?6. 怎样理解 Vue 的单向数据流?7. 虚拟 DOM 是什么? 有什么优缺点?8. Vue的di!算法原理是什么?9. Vue.use是⼲什么的?10.组件写name有啥好处?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复