Vue面试遇到的题目
2019-08-01 09:25 WEB前端小菜鸟 阅读(525) 评论(0) 编辑 收藏 举报**************************************************************************************
1 .路由两种模式的区别 哈希路由和history
**************************************************************************************
参考:https://www.cnblogs.com/ceceliahappycoding/p/10552620.html
https://www.jianshu.com/p/9449d7605279
自己总结:
构建 SPA(单页面应用),需要引入前端路由系统,这也就是 Vue-Router 存在的意义。
前端路由的核心,就在于 —— 改变视图的同时不会向后端发出请求。(指的是实实在在的F5页面我理解的)
前端路由实现起来其实也很简单,就是匹配不同的 url 路径,进行解析,加载不同的组件,然后动态的渲染出区域 html 内容。
比如这个 URL:http://www.abcdef.com/#/hello,hash 的值为 #/hello。它的特点在于:hash 虽然出现在 URL >中,但不会被包括在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面。
2.history —— 利用了 HTML5 History Interface 中新增的 pushState() 和 replaceState() 方法。(需要特定浏览器支持
**************************************************************************************
2.vue中data中声明的数组,有些时候修改数组它不会实时响应,有时候又会,怎么处理?怎么界定数组的哪些方法可以实时更新哪些不能实时更新?
**************************************************************************************
(变异方法)修改原数组的可以实时更新,(非变异的如filter(),slice()等返回一个新数组,你页面上渲染的是原始数组当然不会实时更新啦)
change(){ console.log('change'); //this.arrlist1[0]=9 不行 Vue.set(this.arrlist1,0, 9) },
总结:基础数据不行,引用数据可以,原理就是obj.defineproterty,数组中的对象声明了所以劫持这个数组的中的对象的seter/getter,这样就可以直接改值了;数组push生效时应为重新了push方法
arrlist:[ { name:'大哥' }, { name:'小弟' } ],
******************************************************************************************************************
https://www.cnblogs.com/penghuwan/p/7194133.html computed watch methods
******************************************************************************************************************
******************************************************************************************************************
******************************************************************************************************************
******************************************************************************************************************
******************************************************************************************************************