范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

史上最全前端vue面试题!推荐收藏

  1.为什么会形成跨域?
  不是一个源的文件操作另一个源的文件就会形成跨域。当请求端的协议、域名、端口号和服务器的协议、域名、端口号有一个不一致就会发生跨域。
  解决方法:安装插件
  Pip install django-cors-headers
  2.vuex的工作流程?
  ① 在vue组件里面,通过dispatch来出发actions提交修改数据的操作。
  ② 然后再通过actions的commit来出发mutations来修改数据。
  ③ mutations接收到commit的请求,就会自动通过Mutate来修改state(数据中心里面的数据状态)里面的数据。
  ④ 最后由store触发每一个调用它的组件更新。
  3.vuex是什么?怎么使用?
  vuex是一个专为vue.js应用程序开发的状态管理模式。使用:store,getters,mutations,actions,modules详细使用写法请见:https://blog.csdn.net/qq_33226029/article/details/109628600?spm=1001.2014.3001.5502
  4.vuex中的数据在页面刷新后数据消失怎么解决?
  使用sessionStorage或localStorage存储数据;也可以引入vuex-persist插件
  5.在vue中,如何阻止事件冒泡和默认行为?
  在绑定事件时,在指令后边加上修饰符.stop来阻止冒泡,.prevent来阻止默认行为
  6.深拷贝与浅拷贝?
  假设B复制A,修改A的时候,看B是否变化:B变了是浅拷贝(修改堆内存中的同一个值),没变是深拷贝(修改堆内存中不同的值)。浅拷贝只是增加了一个指针指向已存在的内存地址,深拷贝是增加了一个指针并申请了一个新的内存,使这个增加的指针指向这个新的内存。深拷贝和浅拷贝最根本的区别在于是否真正获取一个对象的复制实体,而不是引用。
  7.vue的生命周期?
  beforeCreate created beforeMount mounted beforeUpdate updated beforeDestroy destroyedactived deactived (keep-alive)组件是否激活调用
  8.keep-alive: 组件缓存
  https://juejin.cn/post/6844903624099758094     
  router.js中:
  meta: {keepAlive:true} // 需要被缓存
  钩子执行顺序:created -> mounted -> actived
  include表示需要缓存的页面;exclude表示不需要缓存的页面。如果两个同时设置,exclude优先级更 改,则组件不会被缓存。
  应用场景: 用户在某个列表页面选择筛选条件过滤出一份数据列表,由列表页面进入数据详情页面,再返回 该列表页,我们希望列表页可以保留用户的筛选状态。
  9.vue传值方式?
  props    $emit()    $on()    $parent    $children    $listener    $attr
  10.$on 兄弟组件传值 var event = new Vue(); // 定义一个空的vue实例 a组件:event.$emit("data-b", this.age); b组件:event.$on("data-b", age=>{     this.age = age; })
  $emit   分发
  $on   监听
  $off   取消监听
  $once   一次性监听一个事件
  在js文件中定义一个中央事件总线Bus,并暴露出来
  具体的实现方式:在utils下新建eventBus.js // eventBus.js import Vue from "vue"; export default new Vue();在需要使用的组件中引入 import Bus from "@/untils/eventBus.js"; // 方法触发 handleBus(){     Bus.$emit("tryBus"); }  // 方法定义及实现 Bus.$on("tryBus", ()=>{     console.log("点着我了"); });  // 若不是全局使用,记得清除方法 beforeDestroy(){     Bus.$off("tryBus"); }
  使用Bus的时候在接收Bus的组件的beforeDestroy函数中销毁Bus,否则会一直叠加调用这个方法。
  应用场景:"退出登录" -> ①点击退出登录;②修改密码后自动退出登录
  11.组件跨级传值
  $attrs   a->b->c
  $listeners   监听 // a   // b   // c props:["toCVal"], this.$emit("fromSon");
  12.vue事件修饰符有哪些?
  .stop .prevent .self .once .passive .sync
  13.箭头函数中的this?
  不具有this绑定,但函数体可以使用this,这个this指向的是箭头函数当前所处的词法环境中的this对象。
  14.vue中watch与computed使用及区别?
  computed:
  支持缓存。只有依赖数据变化才会重新计算;
  不支持异步,无法监听数据变化;
  会默认走缓存,是基于响应式依赖进行缓存的,及通过data声明过或props数据计算得到;
  属性值为函数,默认走get方法;数据变化走set方法。
  watch:
  监听器,不支持缓存,数据变化直接出发;
  支持异步;
  接收两个参数,新值与旧值;
  监听数据必须是data中声明过或父组件传递props中的数据。
  15.为什么vue组件中data必须是一个函数?
  如果不是函数的话,每个组件的data都是内存的同一个地址,一个数据改变了其他也改变了,当他是一个函数时,每个组件实例都有自己的作用域,每个实例相互独立,就不会互相影响。
  16.v-if 和 v-show区别?
  v-if 是对标签的创建与销毁, v-show 则仅在初始化时加载一次,v-if 开销相对来说比v-show 大;
  v-if 是惰性的;v-show 做的仅是简单的css切换。
  17.v-text 与 v-html区别?
  v-text 用于普通文本,不能解析html;
  v-html 反之。
  18.v-for key的作用?
  使用v-for更新渲染过的数据,它默认用"就地复用"策略。如果数据项的顺序改变,vue将不是移动DOM元素来匹配数据项的改变,而是简单地复用此处每个元素,并确保在特定索引下显示已被渲染过的每个元素。key属性类型只能是string或number。
  key的特殊属性主要用在虚拟DOM算法,在新旧node对比时辨识VNods。如不使用key,vue会使用一种最大限度减少动态元素并且尽可能的尝试修复/再利用相同类型元素的算法,它会基于key的变化重新排列元素顺序。
  19.Scss是什么?在vue-cli中安装步骤?有哪几大特性?
  npm 下载loader (sass-loader,css-loader,node-sass),在webpack中配置extends属性(加.scss拓展) Vscode中可在扩展中下载;
  特性:可以用变量,可以用混合器,可以嵌套等。
  20.vue获取dom?
  ref
  21.vue初始化页面闪动问题?
  webpack、vue-router
  v-cloak css:[v-cloak]:display:none
  22.什么是vue-router?
  vue router 是官方路由管理器。
  主要功能:路由嵌套,模块化 基于组件路由配置,路由参数、查询、通配符,细粒度导航控制,自定义的滚动条行为等。
  23.vue路由传参,接收?
  传: this.$router.push({path:"", query(params):{}})
  接:this.$router.query.xxx
  24.防抖和节流?
  节流是一定时间内执行一次函数,多用在scroll事件上;
  防抖是在一定时间内执行最后一次的函数,多用在input输入操作,表单提交等。
  25.如何让scss只在当前组件中起作用?
  26.vue observable?
  类似vuex数据共享
  27.解构赋值 // 交换两个变量的值 var val1 = 5; var val2 = 10;  // 常规 创建临时变量temp var temp = val1; tal1 = tal2; tal2 = temp;  // 运用解构赋值 [val1, val2] = [val2, val1];
  28.路由push、replace区别 this.$router.push("home"); // 跳转到home页会向history添加新记录 this.$router.replace("home"); // 一般使用replace来做404页面,不会向history添加新记录
  29.Array.from() 用于将两类对象转为真正的数组 let obj=[{id:5, a:7}] Array.from(obj)
  30.Array.of() 用于将一组值转换为数组 Array.of(1,2,3) // [1,2,3]
  31.数组实例的 find() 和 findIndex() [1,2,-5,10].find(n => n<0) // -5 [1,5,10,15].findIndex((val, i, arr) => {   return val>9 }) // 2
  32.数组实例 fill()[1,2,3].fill(7) // [7, 7, 7] ["a","b","c"].fill(7,1,2) // ["a", 7, "c"]
  33.数组实例 includes()
  此方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes()类似[1,2,3].includes(2) // true [1,2,3].includes(4) // false [1,2,3].includes(3,2) // truestring.includes(searchvalue, start)
  searchvalue 必需,要查找的字符串。
  start 可选,设置从那个位置开始查找,默认为 0。
  34.数组去重方法var arr = ["1","2","3","4","4","6","2"]; const newL = []; for(const o of arr) {     if (newL.find(c=>c=== o)) {         continue;     }     newL.push(o); }(1) Setlet el = new Set(arr)(2) indexOflet el1=[]; arr.forEach(item => {     if(el1.indexOf(item) === -1){         el1.push(item)     } })(3) filter let arr2 = arr.filter((x, index,self) => {     return self.indexOf(x)===index;  });
  35.字符串数组转为数字数组["1","2","3"].map(Number) //  [1, 2, 3]
  36.for...in 返回键列表
  for...of 数值属性的值列表
  更详细的解释请见:https://blog.csdn.net/qq_33226029/article/details/111179890?spm=1001.2014.3001.5502
  37.闭包
  常常用来「间接访问一个变量」。换句话说,「隐藏一个变量」,JS 的函数内部可以使用函数外部的变量。
  定义在函数内部的函数;
  匿名函数创建闭包;
  将函数内部和函数外部连接起来的一座桥梁。内层函数可以使用外层函数的所有变量,即使外层函数已执行完毕,闭包函数可以用来模仿作用域等。
  应用场景:setTimeOut
  setTimeOut传递的第一个函数不能带参数,即setTimeout(func(param),1000) function func(param){   return function(){     alert(1)   } } var f = func(1) setTimeout(f,1000)
  38.内存泄露
  内存泄露是指你用不到(访问不到)的变量,依然占居着内存空间,不能被再次利用起来。39.Map类型也称为 简单映射
  作用:保存一组键值对儿 用普通对象保存键值对儿会导致键容易与原生属性混淆,简单映射能做到键和值与对象属性分离,从而保证对象属性的安全存储。var map = new Map(); map.set("name","pp"); map.set("book","js"); console.log(map.has("name")); // true console.log(map.get("name")); // "pp" map.delete("name");与简单映射相关的是Set类型。集合就是一组不重复的元素。集合中只有键,没有与键关联的值。
  在集合中添加元素用add()方法,
  检查元素是否存在要使用has()方法,
  删除元素delete()方法。var set = new Set(); set.add("name"); console.log(set.has("name")); // true set.delete("name"); console.log(set.has("name")); // false
  40.转JSON对象 JSON.parse()
  转成字符串 JSON.stringify()
  41.Object.assign() 对象合并const target = {a:1, b:2}; const source = {b:4, c:5}; const returnTarget = Object.assign(target, source); console.log(returnTarget); // {a: 1, b: 4, c: 5}
  42.Router-link: 封装a标签
  Router-view:视图渲染路由
  43.css隔离方案BEM(Block Element Modifier) 约定前端前缀 CSS-Modules 打包时生成不冲突的选择器名 Shawdow DOM css-in-js
  44.less 和 sass有什么区别?
  less:用 @  定义变量
  scss:用 $  定义变量;可以判断语句 if else 可以循环 for
  45.const 为什么能改变对象和数组?
  const仅保证指针不发生改变,修改对象属性不会改变对象的指针,所以是被允许的。
  引用类型:引用地址,保存的只是要给只想实际数据的指针。
  基本类型:地址固定,值就草存在变量指向的那个内存地址。
  const用来定义常量,且定义的时候必须初始化,且定义后不能改变。
  46.v-deep
  如果不使用scoped属性改公共组件的样式会被污染到全局,但设置scoped属性的话,直接覆盖样式会不生效。
  vue组件中使用第三方组件库,需要在这个组件中定制样式又不想影响其他地方使用此第三方组件的样式。
  用deep选择器,可以穿透scoped但又不会污染全局样式。 // scss /deep/会发生警告 ::v-deep.el-btn-small{}  // css .a>>> .b{}
  原文地址:https://www.jianshu.com/p/811bf648e82d

请注意比较鸡肋的手机配置,有没有的吧手机的更新换代速度很快,几乎每更新一次就会有一些新技术的运用,比如这两年的高刷新率,现在基本已经普及了,大家可以回想一下,从小米mix开始到现在的全面屏,一共也没用几年。今年流行屏iPhone13Pro将配备快速刷新显示屏,加持LTPO,续航将大幅提升期待更流畅的滚动希望对电池续航的影响最小如今,让您的眼睛大饱眼福于旗舰手机,您可能会看到具有快速刷新显示屏的设备。尽管大多数手机的屏幕刷新频率为60Hz,但现在许多最好的手机都将该五险一金真的那么重要吗?为什么很多人宁愿做小时工不要五险一金?还别说,这种现象的确非常常见,尤其是年轻的临时工,说实话真的确是有点目光短浅了,但也不能怪他们!是由很多原因造成的!但五险一金真的很重要,特别是五险。五险一金到底有多重要?既然重要不越狱实现iPhone通话录音?科大讯飞iFLYBUDSlite还有更多黑科技Iphone如何设置通话录音?苹果怎么才能通话录音?ios如何不越狱实现通话录音?相信很多刚使用苹果的朋友们都会去度娘求教一下,ios出于对隐私保护,是不可能提供通话录音功能,虽然苹果拥有200亿美元广告机会的科技巨头图片来源视觉中国文丨美股研究社不久前,国外知名轻博客网站Tumblr软件工程师SteveStreza在社交媒体表示了对苹果的不满,他认为苹果广告推广过于频繁,尽管都是自家的产品,例iPhone13升级太小,放弃苹果,魅族18系列成用户新宠提及智能手机发展史,一定绕不开苹果。在智能机发展的早期,苹果凭借其强悍的性能独特的系统以及卓越的安全性,受到了不少消费者的追捧。随着9月的到来,苹果iPhone13系列也已定档,网三星自研芯片很强大,为什么三星的手机还会用高通的芯片?所谓的自研芯片,其实也就是魔改了ARM的公版架构,依旧需要依赖ARM指令集提供的底层技术支持,并不是真正的完全自研。但即使如此,魔改ARM架构也是非常困难的,一般的企业宁愿用公版架真我GTNeo2新机预热以强大,回敬热爱就在今天早上,真我宣布将于本月22号发布新机真我GTNeo2。今年真我发布的机型都获得不错好评,相信这一次也不例外。发布会主题为以强大,回敬热爱,主题让人产生无限遐想。据爆料此次新物联网行业正影响着人们工作生活的哪些方面物联网行业正影响着人们工作生活的哪些方面随着5G网络的不断发展与普及,物联网行业也迎来了井喷式的增长。那么什么是物联网?物联网又影响着人们的哪些方面呢?今天我们就一起详细的聊一聊物三星S22Exynos2200跑分结果出炉中关村在线消息9月13日下午,知名数码博主数码闲聊站发布了一条微博,称三星下一代处理器Exynos2200(暂命名)出现在了GeekBenchv5之中,单核跑分1073,多核跑分3三星2亿像素公布,小米12Ultra拿下首发,DXO第一稳了现在国产中最受欢迎的品牌当然是小米,无论是从知名度还是实际销量上来看都是如此,比较牛的是,今年在二季度销量中小米拿下全球第一,连续赶超iPhone和三星,确实是在华为跌落之后国产手
长白山天池是一个冷水湖,那里面真的会有水怪和大型生物吗?长白山天池是一个高山冷水湖,水域面积9。82平方公里,深200米到300米。天池实际上是一个休眠火山口,而它的水源就是在周围山上的冰雪融水。天池的水位一直恒定在海拔2189米左右,法国前总理德维尔潘数字技术是一种影响全人类的公共产品新京报贝壳财经讯(记者程子姣)8月6日,2021贝壳财经数字经济通往未来之路夏季线上峰会上,法国前总理中欧国际工商学院特聘教授多米尼克德维尔潘进行了主题演讲,对疫情常态下数字经济的MIUI13发布时间确认,雷军承诺优化体验,打碎高端路上绊脚石小米方面宣布,8月10日晚上1930召开雷军年度演讲,畅聊小米公司成立十周年经历多少次艰难,聊聊最艰难的十个选择。预热期间,雷军透露不少关键信息,确认MIUI13暂时不会发布,重新终于来了!雷军亲自官宣小米MIX4发布时间8月10日手机中国新闻此前,雷军在社交平台上宣布将会在下周二举办年度演讲,聊聊他最艰难的10个选择!虽然之前小米的第一次直面会效果不佳,但是这次的年度演讲肯定会带来一些干货。雷军微博截图8月机械键盘米物G06,权衡工作和游戏的优质体验对于办公族来说,合适的键盘不仅能够带来舒适的打字体验,而且还能大大提高工作效率。如今人们选购的键盘多以机械键盘为主,是其回弹有力的敲击感就是其中一个重要的原因,这种手感在一定程度上女子9年前低价买下17。5枚比特币,现价值400万却不翼而飞国外女网友曾在2012年的时候在暗网上花了80美元(约500元人民币)买了17。5个比特币,现价值36万多美元(约400万人民币)。就当这个女网友登录自己的账户时,却发现里面价值4有人说,农民种不种地无所谓,吃进口粮食,这个观点你认同吗?有人说,农民种不种地无所谓,吃进口粮食,这个观点你认同吗?能有这种想法的人,一定是还没有成年,或者是觉得自己手里有几个钱,到哪里都可以买到粮食,吃了几天饱饭,就不知道粮食是从哪里来手机本身就是工具至于什么牌子的你现在用的是什么品牌的手机手机本身就是工具,至于什么牌子的我想大家都知道型号也各不相同。比如,有的朋友喜欢手机游戏,必然会去买一款配置较高的手机,既可以畅玩游戏还可以长时间待机通话净水器哪个牌子好很多的消费者多想知道哪个牌子的净水器好,这样方便他们购买净水。其实现在的净水器没有绝对的好坏,只能用质量的高低来形容。毕竟在我们平常的饮用水中可能存在大量肉眼不可见的杂质重金属等物颜值好音质并存,还可作充电宝,南卡N2S真无线耳机体验真无线耳机最近越来越受到人们的青睐,一方面随着技术的发展,蓝牙5。0及APTX的面世,蓝牙耳机在音质延迟上都有所提升,另外一方面,可以摆脱有线耳机的束缚。南卡又双叒叕出新耳机了,南原创为年轻人打造音乐运动之HAKIIACTION真无线耳机体验最近我通过朋友推荐从某电商平台599元购买到HAKIIACTION哈氪觉醒的蓝牙真无线耳机,不仅颜值高音质在同价位中也相当不错,今天就由我为大家简单从开箱配件外观链接和实际使用等方