一说map 和 forEach 的区别?
解题思路
得分点 map创建新数组、map返回处理后的值、forEach()不修改原数组、forEach()方法返回undefined 标准回答 map 和 forEach 的区别:map有返回值,可以开辟新空间,return出来一个length和原数组一致的数组,即便数组元素是undefined或者是null。forEach默认无返回值,返回结果为undefined,可以通过在函数体内部使用索引修改数组元素。 加分回答 map的处理速度比forEach快,而且返回一个新的数组,方便链式调用其他数组新方法,比如filter、reduce let arr = [1, 2, 3, 4, 5]; let arr2 = arr.map(value => value * value).filter(value => value > 10); // arr2 = [16, 25]
map创建新数组 返回处理后的值 foreach不修改原数组,foreach方法返回undefined map有返回值 for each 说一说computed和watch的区别?
解题思路 computed值有缓存,触发条件依赖值发生更改,一个数据受多个数据的影响,购物车商品计算 watch无缓存支持异步,监听数据变化,重复执行一个数据影响多个数据,例如查询导航搜索栏
说一说组件通信的方式?
解题思路
子组件通过props属性获取接收数据,子组件给父组件传递数据,
子组件通过¥on监听父组件,通过emit绑定事件,方法名字 参数
eventbus on emit vuex公共管理公共数据,状态数据存储, EventBus: 使用方法是创建一个新的Vue实例,需要通信的组件都引入该Vue实例,传递数据的组件使用 event.$emit('名称',参数)发送数据,接收数据的组件使用 event.$on('名称',方法)接收数据。eventbus 使用方法是创建一个vue实例,需要通信的组件都引入该vue实例,传递数据的组件使用 event.on名称 方法接收数据
得分点 父子通信、自定义属性、props、on、VueX 标准回答 Vue组件的通信方式分为两大类,一类是父子组件通信,另一类是任何关系类型组件通信(父子、兄弟、非兄弟) 父子组件的通信方式: 父给子传递数据,通过给子组件添加自定义属性,比如:,list是父组件给子组件传递的数据。子获取父的数据,在子组件中使用props属性获取 子给父传递数据,通过给子组件传递父组件的方法,子组件调用父组件的方法传递数据,比如: ,deleteHandler就是父组件的函数,在子组件中通过this.emit('名称',参数)发送数据,接收数据的组件使用 event.$on('名称',方法)`接收数据。 VueX: 集中管理项目公共数据,Vuex 的状态存储是响应式的,当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。 加分回答 EventBus的优缺点,缺点vue是单页应用,如果你在某一个页面刷新了之后,与之相关的EventBus会被移除,这样就导致业务走不下去。同时如果页面中有反复操作的业务,EventBus在监听的时候就会触发很多次,需要好好处理EventBus在项目中的关系。在vue页面销毁时,同时移除EventBus事件监听。优点,解决了多层组件之间繁琐的事件传播,使用原理十分简单,代码量少。适合业简单,组件传递数据较少的项目,大型项目业务复杂的还是尽量使用VueX
一. GET和POST是什么?
HTTP协议中的两种发送请求的方法,本质上都是在进行TCP连接.
二. GET请求和POST请求的区别是什么? GET请求参数是通过URL进行传递的,POST请求的参数包含在请求体当中。 get请求参数通过url进行传递,post请求的参数包含在请求体中 get请求比post请求更不安全,参数直接暴露在url中,get请求不能用来传递敏感信息 get请求在url中传递的参数有长度限制,post没有参数长度限制 get请求参数完整保留在浏览器的历史记录, GET请求比POST请求更不安全,因为参数直接暴露在URL中,所以,GET请求不能用来传递敏感信息。
GET请求在url中传递的参数是有长度限制的(在HTTP协议中并没有对URL的长度进行限制,限制是特定的浏览器以及服务器对他的限制,不同浏览器限制的长度不同。),POST对长度没有限制。
GET请求参数会完整的保留在浏览器的历史记录中,POST请求的参数不会保留。
GET请求进行url编码(百分号编码),POST请求支持多种编码方式。
GET请求产生的URL地址是可以被bookmark(添加书签)的,POST请求不可以。
GET请求在浏览器回退的时候是无害的,POST请求会.再次提交数据。
GET请求在浏览器中可以被主动cache(缓存),而POST请求不会,可以手动设置。
\state this ¥store state调用变量数据
改变store中的状态的唯一途径就是显式提交commit mutation
得分点 computed值有缓存、触发条件是依赖值发生更改、 watch无缓存支持异步、监听数据变化 标准回答 computed: 是计算属性,依赖其它属性值,并且 computed 的值有缓存,只有它依赖的属性值发生改变,下一次获取 computed 的值时才会重新计算 computed 的值; watch: 更多的是观察的作用,支持异步,类似于某些数据的监听回调 ,每当监听的数据变化时都会执行回调进行后续操作; 加分回答 computed应用场景:需要进行数值计算,并且依赖于其它数据时,应该使用 computed,因为可以利用 computed 的缓存特性,避免每次获取值时,都要重新计算; watch应用场景:需要在数据变化时执行异步或开销较大的操作时,应该使用 watch,使用 watch 选项允许我们执行异步操作 ( 访问一个 API ),限制我们执行该操作的频率,并在我们得到最终结果前,设置中间状态。这些都是计算属性无法做到的。