1、能不能在method中使⽤箭头函数?
理论上可以使⽤,但是我不会使⽤,因为箭头函数中的this的指向与⼀般函数不同 ⼀般函数执⾏调⽤ 它的对象
箭头函数中的this指向的是它的⽗级,这就会使在箭头函数中使⽤this.$store.state等⽅法时出现问题
2、如何定义组件的data?
1 Vue.component('⾃定义标签名',{
2 template:”#模板id名“,
3 data:founction(){} //data中必须是有返回值的函数并且返回的是对象
4 }
3、 v-if 和 v-show的区别?
v-if是通过控制节点是否渲染来显示或隐藏元素的
v-show是通过控制节点的display属性来控制节点的显示和隐藏的
所以v-if适⽤于单次判断节点的状态 v-show是⽤在节点需要反复显示和隐藏时
4、computed、watch、methods的区别?
watch是⽤来监听数据的改变的 当所监听的数据发⽣改变时就会触发所定义的事件,它的值可以是⼀ 个对象
methods 与 computed类似他们的值只能是⽅法
但是不同的是 computed中的⽅法是以变量的⽅式使⽤的并且会存到缓存中
5、axios的特点?
axios是⼀个基于promise的HTTP库,⽀持promise的所有API;
它可以拦截请求和响应;
它可以转换请求数据和响应数据,并对响应回来的内容⾃动转换为json类型的数据;
它安全性更⾼,客户端⽀持防御XSRF;
6、如何解决⻚⾯刷新vuex被清空的问题?
将vuex中的数据存⼊sessionStorage中或locationStorage中
或者在⻚⾯刷新时重新进⾏数据的请求再存⼊vuex中
7、axios和ajax有什么不同?
1.axios是对ajax的封装
2.axios返回的是promise对象可以使⽤promise的api ajax是通过回调函数获取数据
8、vue等单⻚⾯⽹站的优势和不⾜
单⻚⾯应⽤:
就是只有⼀张Web⻚⾯的应⽤。单⻚应⽤程序 (SPA) 是加载单个HTML ⻚⾯并在⽤户与应⽤程序交互
时动态更新该⻚⾯的Web应⽤程序。浏览器⼀开始会加载必需的HTML、CSS和JavaScript,所有的操作
都在这张⻚⾯上完成,都由JavaScript来控制。因此,对单⻚应⽤来说模块化的开发和设计显得相当重要。
优势:
提供了更加吸引⼈的⽤户体验:具有桌⾯应⽤的即时性、⽹站的可移植性和可访问性。
单⻚应⽤的内容的改变不需要重新加载整个⻚⾯,web应⽤更具响应性和更令⼈着迷。
单⻚应⽤没有⻚⾯之间的切换,就不会出现“⽩屏现象”,也不会出现假死并有“闪烁”现象
单⻚应⽤相对服务器压⼒⼩,服务器只⽤出数据就可以,不⽤管展示逻辑和⻚⾯合成,吞吐能⼒会提⾼ ⼏倍。
良好的前后端分离。后端不再负责模板渲染、输出⻚⾯⼯作,后端API通⽤化,即同⼀套后端程序代 码,不⽤修改就可以⽤于Web界⾯、⼿机、平板等多种客户端。
不⾜:
⾸次加载耗时⽐较多。
SEO问题,不利于百度,360等搜索引擎收录。
容易造成css命名冲突。
前进、后退、地址栏、书签等,都需要程序进⾏管理,⻚⾯的复杂度很⾼,需要⼀定的技能⽔平和开发成本⾼。
9、使⽤mvvm设计模式有什么优势?
低耦合:视图(View)可以独⽴于 Model 变化和修改,⼀个 ViewModel 可以绑定到不同 的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
独⽴开发
:开发⼈员可以专注于业务逻辑和数据的开发(ViewModel),设计⼈员可以专注于⻚⾯设 计。
可重⽤性
:你可以把⼀些视图逻辑放在⼀个ViewModel⾥⾯,让很多 view 重⽤这段视图逻辑。
可测试
:界⾯素来是⽐较难于测试的,⽽现在测试可以针对ViewModel来写。
10、如何编写可复⽤的组件
在编写组件的时候,⾸先要做的就是组件的抽象,考虑组件是否可复⽤,组件之间是否存在耦合。⼀次性组件跟其他组件紧密耦合没关系,但是可复⽤组件⼀定要定义⼀个清晰的公开接⼝。
组件的接⼝主要分为三部分:prop、事件、slot:
prop
允许外部环境传递数据给组件,在vue-cli⼯程中也可以使⽤vuex等传递数据。
事件
允许组件触发外部环境的 action
slot
允许外部环境将内容插⼊到组件的视图结构内。