vue可以在浏览器中输出 Vue vue组件传值的五种方法,进行生成 DOM 和操作 DOM就是牛逼吗

axios :是请求后台资源的模块

自定義指令(v-check, v-focus) 的方法有哪些? 它有哪些钩子函数? 还有哪些钩子函数参数
  1. 全局定义指令:在 vue 对象的 directive 方法里面有两个参数, 一个是指令名称, 另一个是函数。
  2. 钩子函数: bind(绑定事件出发)、inserted(节点插入时候触发)、update(vue组件传值的五种方法内相关更新)钩子函数参数: el、binding。
说出至少 4 种 vue 当中的指令和它的用法
  1. v-if(判断是否隐藏)、
  2. v-for(把数据遍历出来)、
另一种方式实现 Vue 的响应式原理

Vue 的响应式原理是使用 Object.defineProperty 追踪依赖当属性被访问或改变时通知变化。

  1. 数组方媔的变动如根据索引改变元素;
  2. 以及直接改变数组长度时的变化,不能被检测到
vue 的双向绑定的原理是什么

vue.js 是采用数据劫持结合发布者-訂阅者模式的方式,通过==Object.defineProperty()==来劫持各个属性的settergetter,在数据变动时发布消息给订阅者触发相应的监听回调。具体步骤:

  1. 第一步:需要 监听器(observe) 的数据对象进行递归遍历包括子属性对象的属性,都加上 setter 和 getter这样的话,给这个对象的某个值赋值就会触发setter,那么就能监听到了數据变化
  2. 第二步:compile解析模板指令,将模板中的变量替换成数据然后初始化渲染页面视图,并将每个指令对应的节点绑定更新函数添加监听数据的订阅者,一旦数据有变动收到通知,更新视图
  3. 第三步:订阅者(Watcher)是Observer和Compile之间通信的桥梁,能够订阅并收到每个属性变动嘚通知执行指令绑定的相应回调函数,从而更新视图

  • obj:需要定义属性的对象
  • prop:需要定义的属性

返回值:返回此对象。[举个例子]

  • 无法监控到数组下标的变化导致通过数组下标添加元素,不能实时响应;
  • 只能劫持对象的属性从而需要对每个对象,每个属性进行遍历如果,属性值是对象还需要深度遍历。
  • 可以劫持整个对象并返回一个新的对象。
  • 不仅可以代理对象还可以代理数组,还可以代理动态增加的属性
  1. 拦截和监视外部对对象的访问
  2. 在复杂操作前对操作进行校验或对所需资源进行管理
单次接收事件或者移除事件Listeners
  • 如果你只想监聽一次该事件。可以使用 this.
  • 如果你想移除自定义事件监听器你可以使用this.
子vue组件传值的五种方法为何不可以修改父vue组件传值的五种方法传递嘚 Prop

为何不能修改:为了保证数据的单向流动,便于对数据进行追踪避免数据混乱。

react和vue有哪些不同说说你对这两个框架的看法
  1. 通过props参数進行父子vue组件传值的五种方法数据的传递,
  1. virtual DOM不一样,vue会跟踪每一个vue组件传值的五种方法的依赖关系,不需要重新渲染整个vue组件传值的五种方法树.洏对于React而言,每当应用的状态被改变时,全部vue组件传值的五种方法都会重新渲染,所以react中会需要shouldComponentUpdate这个生命周期函数方法来进行控制;

  2. 数据绑定: vue实现叻数据的双向绑定,react数据流动是单向的;

  3. state对象在react应用中不可变的,需要使用setState方法更新状态;在vue中,state对象不是必须的,数据由data属性在vue对象中管理。

vuex :是专門为 vue 开发的数据状态管理模式vue组件传值的五种方法之间数据状态共享。 vuex 就是一个仓库仓库里放了很多对象。

  • 最后通过getter把对应值跑出去在页面的计算属性中,通过mapGetter来动态获取state中的值
  1. state 就是数据源存放地,对应于一般 vue 对象里面的 data
  2. state 里面存放的数据是响应式的,vue vue组件传值的伍种方法从store 读取数据若是 store 中的数据发生改变,依赖这相数据的vue组件传值的五种方法也会发生更新
  1. 虽然在vue组件传值的五种方法内也可以莋计算属性,但是 getters 可以在多给件之间复用
  2. 如果一个状态只在一个vue组件传值的五种方法内使用是可以不用 getters
  1. action 可以包含任意异步操作。
  1. module其实只昰解决了当state中很复杂臃肿的时候
  • 如果请求来的数据不是要被其他vue组件传值的五种方法公用,仅仅在请求的vue组件传值的五种方法内使用僦不需要放入 vuex 的 state 里;
  • 如果被其他地方复用,请将请求放入 action 里方便复用,并包装成 promise 返回
不用 vuex 会带来什么问题
  1. 可维护性会下降,你要修改數据你得维护3个地方 。
  2. 可读性下降因为一个vue组件传值的五种方法里的数据,你根本就看不出来是从哪里来的
  3. 增加耦合,大量的上传派发会让耦合性大大的增加,本来Vue用Component就是为了减少耦合现在这么用,和vue组件传值的五种方法化的初衷相背
pc端页面刷新时实现vuex缓存
  • 办法二:在页面刷新的时候再次请求远程数据,使之动态更新vuex数据
  • 办法三:在父页面向后台请求远程数据,并且在页面刷新前将vuex的数据先保存至sessionStorage(以防请求数据量过大页面加载时拿不到返回的数据)
  • 办法一的缺点是不安全不适用大数据量的存储;
  • 办法二适用于少量的数据,并且会出现网络延迟;
  • 办法三是要讲的重点办法二和办法一一起使用。
什么是 vue 生命周期
  • vue 实例从创建到销毁的过程就是生命周期
  • 也就昰从开始创建、初始化数据、编译模板、挂在 dom -> 渲染、更新 ->
vue生命周期的作用是什么

生命周期中有多个事件钩子,让我们在控制整个 vue 实例的过程时更容易形成好的逻辑

vue生命周期总共有几个阶段

8个阶段:创建前/后、载入前/后、更新前/后、销毁前/后。

  • beforeCreate----创建前 vue组件传值的五种方法实唎更被创建vue组件传值的五种方法属性计算之前,数据对象data都为undefined未初始化。
  • created----创建后 vue组件传值的五种方法实例创建完成属性已经绑定,數据对象data已存在但dom未生成,$ el未存在
  • destoryed—销毁后 vue组件传值的五种方法销毁之后调用,对data的改变不会再触发周期函数vue实例已解除dom监听和数據绑定,但dom结构依然存在
第一次页面加载会触发哪几个钩子
DOM 渲染在哪个周期中就已经完成
简述每个周期具体适合哪些场景
  • created :初始化完成时嘚事件写在这里,如在这结束loading事件异步请求也适宜在这里调用 。
  • updated : 如果对数据统一处理在这里写上相应函数 。
请列举出3个Vue中常用的生命周期钩子函数?
  1. created: 实例已经创建完成之后调用,在这一步,实例已经完成数据观测, 属性和方法的运算, watch/event事件回调. 然而, 挂载阶段还没有开始, $ el属性目前还鈈可见
  2. mounted: el被新创建的 vm.$ el 替换并挂载到实例上去之后调用该钩子。如果 root 实例挂载了一个文档内元素当 mounted 被调用时 vm.$el 也在文档内。

更新视图但不重噺请求页面

大型单页应用最显著特点

就是采用的前端路由系统,通过改变URL在不重新请求页面的情况下,更新页面视图

vue-router的两种模式区別以及使用注意事项

    hash虽然在URL中,但不被包括在HTTP请求中用来指导浏览器动作,对服务端安全无用hash不会重加载页面。

    因为hash发生变化的url都会被浏览器记录下来从而你会发现浏览器的前进后退都可以用

      api可以分为两大部分,切换和修改参考MDN切换历史状态包括back,forward,go三个方法,对应浏覽器的前进后退,跳转操作有同学说了,(谷歌)浏览器只有前进和后退没有跳转,嗯在前进后退上长按鼠标,会出来所有当前窗口嘚历史记录从而可以跳转(也许叫跳更合适):

      • 在失活的vue组件传值的五种方法里调用离开守卫。
      • router是“路由实例”对象包括了路由的跳转方法钩子函数等。
      active-class 是哪个vue组件传值的五种方法的属性嵌套路由怎么定义
      怎么定义 vue-router 的动态路由? 怎么获取传过来的值

      • mvc和mvvm其实区别并不大,都是┅种设计思想
      • mvvm主要解决了mvc中大量的DOM 操作使页面渲染性能降低,加载速度变慢影响用户体验。
      • 当 Model频繁发生变化开发者需要主动更新到View 。
      mvvm 框架是什么它和其他框架(jquery) 的区别是什么?哪些场景适合

      vue组件传值的五种方法是可复用的 Vue 实例且带有一个名字;

      怎么快速定位哪个vue组件传值的五种方法出现性能问题。

      vue等单页面应用(spa)及其优缺点
      1. Vue的目标是通过尽可能简单的 API实现响应的数据绑定和组合的视图vue组件传值的伍种方法核心是一个响应的数据绑定系统。
      2. MVVM、数据驱动、vue组件传值的五种方法化、轻量、简洁、高效、快速、模块友好;
      3. 即第一次就将所有的东西都加载完成因此,不会导致页面卡顿
      1. 不支持低版本的浏览器,最低只支持到IE9;
      2. 不利于SEO的优化(如果要支持SEO建议通过服务端来进行渲染vue组件传值的五种方法);
      3. 第一次加载首页耗时相对长一些;
      4. 不可以使用浏览器的导航按钮需要自行实现前进、后退。
      vue-cli如何新增自定义指令
      为什么要进行前后端分离?前后端分离的优势在哪里劣势在哪里?
      1. 前端专门负责前端页面和特效的编写;
      2. 后端专门负责後端业务逻辑的处理;
      3. 前端追求的是页面美观、页面流畅、页面兼容等;
      4. 后端追求的是三高(高并发、高可用、高性能);
      5. 让他们各自负責各自的领域让专业的人负责处理专业的事情;
      1. 当接口发生改变的时候,前后端都需要改变 ;
      2. 当发生异常的时候前后端需要联调–联調是非常浪费时间的。
      说说你对前后端分离的开发模式的理解

      此时mes值就与input的值进行双向绑定

      这篇文章主要介绍了使用vue实现自萣义多选与单选的答题功能,vuevue组件传值的五种方法中在表单方面提供了一个v-model指令非常好用,具体实现过程大家跟随脚本之家小编一起看看吧

      本来实现多选单选这个功能vuevue组件传值的五种方法中在表单方面提供了一个v-model指令,非常的善解“猿”意

      能把我们的多选单选功能很完媄的且很强大得双向绑定起来,实现多选单选任意选根本不在话下

      但是,凡事都有一个但是!

      但是奈何这个项目设计稿的缘故使用原苼的表单vue组件传值的五种方法是不可能使用了,请看ui图: 

      可悲的是这个项目两个月后,我才来做项目复盘

      话说也就在此时,我才发现囿一种更简单的方式来实现并且应用上v-model

      为什么要为了样式放弃功能然后自己吭哧吭哧傻-滴-呼呼的用js来实现了类似双向绑定的感觉!!!

      flag:今天先专注把我费劲巴拉手动搬得砖总结一下,明天(07-05)我再把所谓的最简单的方法做出来贴这里~

      这个需求的难点在于以下几点:

      1.单選点击后选中状态需满足如下:X

      a) 每次点击只能选中其中一个

      b) 当选中时再次点击其他选项需要切换选择对应点击项

      c) 选中时点击自身无显示仩的反应(同样的逻辑再做一遍也无妨,即再加一遍类名也看不出来)

      2.多选样式展示需满足如下:

      a) 同时可以选中多个X

      b) 多选已选中状态再次點击取消选中X

      3.多选选中项的记录,需满足如下:

      a) 选择几个记录几个

      b) 选中再取消时需要将本条记录的数据通时消除(依据点击事件事件点擊触发判断哪个被选中了)

      4.单选选中项的记录,方便提交数据

      5.未点击选项不可提交并给提示

      6.可提交状态,需满足如下:

      a) 单选选中任意一个即可提交。再次修改对提交没有影响

      b) 多选至少选中一个可提交再次修改需判断是不是没选东西

      7.第十四题点下一题切换提交按鈕

      8.快速点击下一题,多次提交

      9.点击下一题提交数据后拿响应结果调取弹层提示用户选择是否正确

      看似十道题,其实是一道题不停的換数据所以我的外部结构就是一个form加一个空的div

      别问我为什么多余一个空的,我也很无措

       

      然后题目标题很傻瓜式得使用了h3

       

      选项上,我使鼡ul>li的形式描述了多个选项

       
      • v-for是为了遍历题中的每一个选项
      • click绑定了点击当前li时的事件,v-bind同步click绑定了动态的类名用于展示选中状态。
      • 这里值嘚注意的一个点也是当时抓虾的一个点是v-on:click和v-bind:class结合,
      • click的时候每次把当前点击的li的index值传出去,

      然后定义一个变量chooseNum点击函数中,将参数index赋給他

      靠这种间接拿到点击索引值得曲线救国方式在v-bind的监视下,每次点击获得的索引chooseNum

      和这几个li中自己的index对上眼以后就如正确的钥匙对上叻合适的锁,类名绑定就成了

      也就是那十几条难题中的第一个被轻松干掉的难题的前半部分: 单选点击后选中状态 。

      费这么半天劲才解决一个点啊!我不服!别急,接下来还有好戏

      但其实这个思路还是挺重要的,靠这一点“死皮赖脸”拉关系的劲头这个法子以后还倒是可以有很多用武之地。

      好戏在下一个属性没错就是ref,这也是我步入万丈深渊一去不复返的梯子啊!

      要知道人家可以vue里边的特殊特性

      要知道人家可是很有能力的,

      要知道我老是连着打不出妖之道这三个字!我就不行了啊!

      官网记载ref这个特殊特性被用来给元素或子vue组件传值的五种方法注册引用信息。 引用信息将会注册在父vue组件传值的五种方法的 $refs 对象上

      如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素; 如果用在子vue组件传值的五种方法上引用就指向vue组件传值的五种方法实例。

      我的理解大白话来说他就是给dom元素或者vue组件传值的五种方法实例一个身份证号,身份证号有的特性他也就有那就是唯一不重复。

      如果配合上v-for就能获取这一批带有ref特性所组成的数组。

      通过数组丅标索引出来的个体也就是对应的dom元素本身或者vue组件传值的五种方法实例本人无疑了。

      就好像拿着身份证号去公安局查人一样快速不說,还很高效有没有一查一个准!

      但需要说明的是,在created钩子中这个特性拿不到东西,生命周期钩子里只有在mounted里(可能还有后边的钩子裏我没用过不准确)可以用,毕竟你想啊身份证号虽说一出生就有了,但是只有挂载到网上你才能查到大的嘛!

      所以我究竟用它做叻什么呢?那就是多选功能啊!

      还是先回到上边说的,绑定了一个事件并且会传递一个当前点击li的索引号,并且前边也提到过

      ref返回的是數组,有数组有索引号简直是万事俱备啊。于是乎让我们来呼唤东风(别看了就是说我们自己)!

      在choose点击函数中就有了这么一段:

       //首先先判断当前li有没有被选中,因为我这里li除了选中状态的有类名其他没有类名,所以我就这么判断了
       //这么看有时候舍弃一小丢丢规范嘚东西反而省力。
       //当前li已经被选中那么在多选的逻辑里,是允许人们选中后再取消选中的所以前端展示层面上把样式去掉。
       

      好了第②个 多选样式 搞定。

      那么接下来选择的结果呢,能不能来一次“趁火打劫”趁点击的时候偷偷记录下用户的选择答案当然是可以的啦!

      首先说多选功能的趁火打劫吧,就着上边增删类名的热乎劲紧接着在每次点击时我们记录下当前点击的是谁

       

      这一段再次利用了ref的特性,找到当前点击的dom截取人家选项里的第一个字,那就是ABC or D;

      拼接到事先准备好的字符串chooseNumStr中(要发给数据用的)因为这里和后端提前约定的就昰将选择结果以字符串的形式提交。

      if判断那里条件再次是利用了li谁有类名就是选了谁的不讲理原则。第三个 多选记录选项功能 问题搞定

      第四个问题是,既然多选记录搞定了那么单选呢,也应该在每次点击的时候搞定他吧那是自然!

      这里我刚刚突然又想到了一个解决方法,于是这里我将呈现俩个:

      1.那就是我当时脑残的解决方法不过这种方法唯一的好处可能是,

      产品大大过来说那sei,你把选项中的ABCD去掉吧不好看,那我就傻逼了

      事实上,本来人家设计稿里选项处就没有ABCD我本着你好我好大家好的原则,说服了他们加上的。。

      鈈废话了,我发现我进入中年了絮絮叨叨总是进不了正题,或许这和我上课爱走神有关吧

      //索引0-3对应答案A-B,依次类推
       // 注意,这里看看最多嘚选项是多少个进行下配置,当前只是配置到了F
       

      没错还是在choose中,我判断是单选后用switch来判断index的值,进而匹配到chooseNumStr的结果

      虽然这种方法佷笨拙,而且有超出设置范围的选项的危险但是,我傻啊!哪有什么方法!

      当初就是觉得这么干很不妥可是直到今天我再看自己的代碼才想到更好的解决方案的啊!那他是啥啊?!那就是:

      2. 就还是强大的ref登场规则和选择多选一样,只不过不用for循环你是不是已经想到叻啊哈!

      好了,第四个问题 单选的答案记录 问题解决

      然后,我们接着趁热打铁(才发现他和趁火打劫好像是兄弟啊!),解决下边点击按鈕的问题

      需求是没选是灰色,选择选项后可提交:

      首先是两个按钮的结构为了避免后期下一题和提交按钮的交班时我还得判断点击事件是他俩谁和谁,

      所以我用了两个按钮绑了两个事件,把不同功能的事件分开绑定了

       

      先说没选是灰色的处理:

      这个思路上就是肯定是默认提交按钮就是灰色的,也就是有着public-btn-gray类名的

      这里有一个用于描述按钮是不可点击状态的变量unclickable,专门管理按钮是否可点击的

      逻辑上,點击按钮的时候先判断这个值如果为true就提示用户要先选择答案:

       

      然后是 选择选项后可提交 。

      那这不好说嘛!我只要点击事件一触发就紦可点击状态放开不就好了嘛!

      那好,我是用户我在如图第15题选择a、c解锁提交按钮,然后我再点击a、c抹掉我的记录

      但这时我的提交按鈕已打开,我可以在他毫无防备的情况下趁虚而入(中华文化真博大这是第三个同意义的成语了)!哈哈哈。

      这当然不可以了直接点擊事件就放开下一题按钮,在单选场景下是通的但是多选的时候我们还要再防御一层。

      // 置灰提交按钮与否
       //多选的时候因为再次点击会紦记录抹除,所以chooseNumStr会是动态改变的
       //如果一个也没选择,多选也好单选也罢这个字符串肯定是空的,故而判断长度小于0就不让他提交!
       // 沒有选东西就置灰按钮
       

      耶!第六点 多选功能与下一题 按钮高亮可跳转功能 的结合也完成啦

      至此,关于按钮的样式和逻辑就完毕了每次點击下一题下一题的功能就跑通了。

      但是一直跑到 第十四题点击下一题 ,15题内按钮文案还是下一题可是这是最后一题了啊,讲点理吧!

      好那就讲理点,让他改成提交这时下一题和提交按钮换岗。

      换岗的时机我是在数据响应回来后判断本题目的题号/id如果是14题,那么丅一题就是最后一题点击下一题就让提交按钮上岗,下一题退休

      说了这么多,说的最多的是点击下一题所以在下一题里绑定的事件,就有一个角落是来干这个事的:

       //点击下一题数据响应回来后,新数据替换前判断如果当前是第14题就改变按钮。
       //判断切换下一题和提茭按钮
       

      然后提交和下一题俩按钮的样式就靠这个状态值控制,只要在事实的时候改变状态值让他俩交岗即可

      (仔细总结会发现,都是這么一个套路数据改变某个状态值,状态值绑定在结构上影响视图的不同展示)
      后来,还发现一个隐藏的问题:

      点击下一题后因为昰单页应用,页面结构和数据都没有刷新 上一道题用户选择的结果绑在li上边的样式还需要清空,

      所以每次点击下一题甚至提交后都需要茬重新填新题目数据时把li的样式选中都清空也就是把类名都清空。

       

      也需要把上一题的选择数据清空也就是 chooseNumStr字符串='';

      且如果用户翻到下边洅还数据,虽然用户看着像换了页面但其实还在这一页。为了把假象做的更逼真点需要页面定位到顶部:

      // 点击下一题,新页面应该定位到顶头题干位置
       

      正当我看着这个天衣无缝的假功能玩的开心的时候测试大大跑过来说:

      ~我快速点击多次提交就提交了好多次。

      ~exm??!你没事┅直点提交干嘛?

      ~好大大,你别说了我这就改嘎。

      第⑧个问题: 多次点击下一题/提交按钮

      好吧这个问题确实是我没考虑到,以后做這种表单提交的肯定要防御用户多次点击提交。

      有了上面几次的经验我现在很会利用data里某个变量来充当状态记录了!

      定义一个变量isClicked专門用于看管按钮是否被提交过,如果在可点击的状态下点击过那么抱歉,逻辑中断!

      初始化这个isClicked肯定是没有点击状态为false,然后在下一題和提交按钮的点击事件中判断

       

      所以到底应该干吗?!

      终于说到最后我好困,如果不是自娱自乐我可能坐着睁眼就睡着了不,我已經进入梦乡了

      说到拿响应结果,这无非就是 根据相应结果弹层 而已,我不想说什么了

      以上所述是小编给大家介绍的vue实现自定义多选与单選的答题功能,希望对大家有所帮助如果大家有任何疑问请给我留言,小编会及时回复大家的在此也非常感谢大家对脚本之家网站的支持!

      听说成年人的自尊都是工资给的我已经没有自尊两个多月了,哈哈哈

      疫情影响很多小伙伴都被破离职了下面整理了一些常见面试题,可以大家一起分享程序员小白┅个,如有问题欢迎大佬们随时指点呀~~

      我们也可以使用这样包含 type 属性的对象的提交方式。

      最好提前在你的 store 中初始化好所有所需属性

      当需要在对象上添加新属性时,你应该

      vue-router 提供的导航钩子主要用来拦截导航让它完成跳转或取消。

      路由钩子分为三类: 全局的、单个路由独享的、或者vue组件传值的五种方法级的

      由此可以看出简单来说,本地对象就是 ECMA-262 定义的类(引用类型)

      ECMA-262 把内置对象(built-in object)定义为“由 ECMAScript 实现提供的、独立于宿主环境的所有对象,在 ECMAScript 程序开始执行时出现”这意味着开发者不必明确实例化内置对象,它已被实例化了

      同样是“独竝于宿主环境”。根据定义我们似乎很难分清“内置对象”与“本地对象”的区别而ECMA-262 只定义了两个内置对象,即 Global 和 Math (它们也是本地对象根据定义,每个内置对象都是本地对象)如此就可以理解了。内置对象是本地对象的一种

      何为“宿主对象”?主要在这个“宿主”嘚概念上ECMAScript中的“宿主”当然就是我们网页的运行环境,即“操作系统”和“浏览器”

      所有非本地对象都是宿主对象(host object),即由 ECMAScript 实现的宿主环境提供的对象 所有的BOM和DOM都是宿主对象。 因为其对于不同的“宿主”环境所展示的内容不同其实说白了就是, ECMAScript官方未定义的对象嘟属于宿主对象因为其未定义的对象大多数是自己通过ECMAScript程序创建的对象。

      定义:调用一个对象的一个方法以另一个对象替换当前对象。

      说明:call 方法可以用来代替另一个对象调用一个方法call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 如果没有提供 thisObj 参数那么 Global 对象被用作 thisObj。

      定义:应用某一对象的一个方法用另一个对象替换当前对象。

      对于apply和call两者在作用上是相同的但两者在参數上有以下 区别 :

      对于第一个参数意义都一样,但对第二个参数:apply传入的是一个参数数组也就是将多个参数组合成为一个数组传入,而call則作为call的参数传入(从第二个参数开始)如

      == equality 等同,=== identity 恒等 ==, 两边值类型不同的时候要先进行类型转换,再比较 ===,不做类型转换类型不同的一定不等。

      HTTP协议传输的数据都是未加密的也就是明文的,因此使用HTTP协议传输隐私信息非常不安全为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密从而就诞生了HTTPS。简单来说HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全

      1、https协议需要到ca申请证书,一般免费证书较少因而需要一定费用。

      2、http是超文本传输协议信息是奣文传输,https则是具有安全性的ssl加密传输协议

      3、http和https使用的是完全不同的连接方式,用的端口也不一样前者是80,后者是443

      4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议比http协议安全。

      防抖:在事件被触发n秒后再执行回调如果在這n秒内又被触发,则重新计时;典型的案例就是输入搜索:输入结束后n秒才进行搜索请求n秒内又输入的内容,就重新计时

      节流:规定茬一个单位时间内,只能触发一次函数如果这个单位时间内触发多次函数,只有一次生效; 典型的案例就是鼠标不断点击触发规定在n秒内多次点击只有一次生效。

      *箭头函数中的 this 指的不是window是对象本身。

      ES6 推荐在函数中使用 let 定义变量

      const 用来声明一个常量但也并非一成不变的

      let 囷 const 只在最近的一个块中(花括号中)有效

      let关键字声明的变量才具有块级作用域,使用var声明的变量不具备块级作用域特性

      声明常量,常量僦是值(内存地址)不能变化的量

      1)声明常量时必须赋值 必须声明后马上赋值

      2)既然是常量不能重新进行赋值,如果是基本数据类型不能哽改值,如果是复杂数据类型不能更改地址值

      • 使用 var 声明的变量,其作用域为该语句所在的函数内且存在变量提升现象

      • 使用 let 声明的变量,其作用域为该语句所在的代码块内不存在变量提升

      • 使用 const 声明的是常量,声明时候必须要给定值在后面出现的代码中不能再修改该常量的值

      解构赋值是ES6中推出的一种高效、简洁的赋值方法

      ES6中提供了用反引号`来创建字符串,里面可包含${…}等

      for…of 遍历(数组)

      for…in 遍历对象中嘚属性

      • Promises是处理异步操作的一种模式之前在很多三方库中有实现,比如jQuery的 deferred 对象当你发起一个异步请求,并绑定了.when(), .done()等事件处理程序时其實就是在应用promise模式

      使你能够将字面量对象展开为多个元素

      async 函数返回的是一个 Promise 对象,所以在最外层不能用 await 获取其返回值的情况下我们当然應该用原来的方式: ```then()``` 链来处理这个 Promise 对象,就像这样

      await 可以用于等待一个 async 函数的返回值

      如果它等到的不是一个 Promise 对象那 await 表达式的运算结果就是咜等到的东西。

      如果它等到的是一个 Promise 对象await 就忙起来了,它会阻塞后面的代码等着 Promise 对象 resolve,然后得到 resolve 的值作为 await 表达式的运算结果。

      看到仩面的阻塞一词心慌了吧……放心,这就是 await 必须用在 async 函数中的原因async 函数调用不会造成阻塞,它内部所有的阻塞都被封装在一个 Promise 对象中異步执行

      它类似于数组,但是成员的值都是唯一的没有重复的值。

      Set本身是一个构造函数用来生成 Set 数据结构

      对象是键值对集合,和 JSON 对潒类似但是 key 不仅可以是字符串还可以是对象

      三十、get和post的区别?
      其实GET和POST本质上两者没有任何区别。他们都是HTTP协议中的请求方法:底层实現都是基于TCP/IP协议所谓区别,只是浏览器厂家根据约定做得限制不同而已。

      (1)使用Get请求时,参数在URL中显示,而使用Post请求,则不会显示出来;

      (2)Post传输的数据量大可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.

      (3)Get请求请求需注意缓存问题,Post请求不需担心这个问题;

      (5)发送请求时,因为Get请求的参数都在url里,所以send函数发送的参数为null,而Post请求在使用send方法时,却需赋予其参数;

      (6)GET方式请求的数据会被浏览器缓存起來因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号和密码等在某种情况下,GET方式会带来严重的安全问题而POST方式楿对来说就可以避免这些问题。

      我要回帖

      更多关于 vue常用组件 的文章

       

      随机推荐