vue总结

Vue.js框架的优势
—提高代码的复用率、降低模块之间的耦合度、提高开发速度、提高代码质量。
1.使用Vue的好处

  1. vue两大特点:响应式编程、组件化
  2. vue的优势:轻量级框架、简单易学、双向数据绑定、组件化、视图、数据和结 构的分离、虚拟DOM、运行速度快

2.Vue的生命周期

  1. beforeCreate(创建前) 在数据观测和初始化事件还未开始
  2. created(创建后) 完成数据观测,属性和方法的运算,初始化事件,$el属性还没有显示出来
  3. beforeMount(载入前)
    在挂载开始之前被调用,相关的render函数首次被调用。实例已完成以下的配置:编译模板,把data里面的数据和模板生成html。注意此时还没有挂载html到页面上。
  4. mounted =>常用(载入后) 在el 被新创建的 vm.$el
    替换,并挂载到实例上去之后调用。实例已完成以下的配置:用上面编译好的html内容替换el属性指向的DOM对象。完成模板中的html渲染到html页面中。此过程中进行ajax交互。
  5. beforeUpdate(更新前)
    在数据更新之前调用,发生在虚拟DOM重新渲染和打补丁之前。可以在该钩子中进一步地更改状态,不会触发附加的重渲染过程。
  6. updated(更新后)
    在由于数据更改导致的虚拟DOM重新渲染和打补丁之后调用。调用时,组件DOM已经更新,所以可以执行依赖于DOM的操作。然而在大多数情况下,应该避免在此期间更改状态,因为这可能会导致更新无限循环。该钩子在服务器端渲染期间不被调用。
  7. beforeDestroy(销毁前) 在实例销毁之前调用。实例仍然完全可用。
  8. destroyed(销毁后) 在实例销毁之后调用。调用后,所有的事件监听器会被移除,所有的子实例也会被销毁。该钩子在服务器端渲染期间不被调用。

3.Vue的响应式原理

  • 当一个Vue实例创建时,vue会遍历data选项的属性,用 Object.defineProperty 将它们转为
    getter/setter并且在内部追踪相关依赖,在属性被访问和修改时通知变化。 每个组件实例都有相应的 watcher
    程序实例,它会在组件渲染的过程中把属性记录为依赖,之后当依赖项的 setter 被调用时,会通知 watcher
    重新计算,从而致使它关联的组件得以更新。

4.第一次页面加载会触发哪几个钩子

  • 触发 :beforeCreate, created, beforeMount, mounted ,并在mounted的时候DOM渲染完成

5.vue中data为什么必须是一个函数

  • 对象为引用类型,当重用组件时,由于数据对象都指向同一个data对象,当在一个组件中修改data时,其他重用的组件中的data会同时被修改;而使用返回对象的函数,由于每次返回的都是一个新对象(Object的实例),引用地址不同,则不会出现这个问题。

6.vue中做数据渲染的时候如何保证将数据原样输出

  • v-text:将数据输出到元素内部,如果输出的数据有HTML代码,会作为普通文本输出
  • v-html:将数据输出到元素内部,如果输出的数据有HTML代码,会被渲染
    {{}}:插值表达式,可以直接获取Vue实例中定义的数据或函数,使用插值表达式的时候,值可能闪烁;而使用v-html、v-text不会闪烁,有值就显示,没值就隐藏

7.active-class是哪个组件的属性

  • vue-router模块的router-link组件。

8.vue-router有哪几种导航钩子

  • 第一种:时全局导航钩子:router.beforeEach(to,from,next),作用:跳转前进行判断拦截。
  • 第二种:组件内的钩子;
  • 第三种:单独路由独享组件

9.路由 r o u t e 和 route和 routerouter的区别

  • r o u t e 是 “ 路 由 信 息 对 象 ” , 包 括 p a t h , p a r a m s , h a s h , q u e r y , f u l l P a t h , m a t c h e d , n a m e 等 路 由 信 息 参 数 。 而 route是“路由信息对象”,包括path,params,hash,query,fullPath,matched,name等路由信息参数。而 routepathparamshashqueryfullPathmatchednamerouter是“路由实例”对象包括了路由的跳转方法,钩子函数等

10.vue几种常用的指令

  • v-for 、 v-if 、v-bind、v-on、v-show、v-else

11.v-if 和 v-show 区别

  • v-if按照条件是否渲染 适用:一次显示/隐藏
  • v-show是display的block或none 适用:来回切换,节省性能上的开销

12.vue常用的修饰符

  • .prevent: 提交事件不再重载页面;
  • .stop: 阻止单击事件冒泡;
  • .self: 当事件发生在该元素本身而不是子元素的时候会触发;
  • .capture: 事件侦听,事件发生的时候会调用

13.vue-loader是什么?使用它的用途有哪些

  • 解析.vue文件的一个加载器,跟template/js/style转换成js模块。
  • 用途:js可以写es6、style样式可以scss或less、template可以加jade等

14.computed、watch、methods的区别

  • computed计算属性是用来声明式的描述一个值依赖了其它的值。当你在模板里把数据绑定到一个计算属性上时,Vue 会在其依赖的任何值导致该计算属性改变时更新 DOM。这个功能非常强大,它可以让你的代码更加声明式、数据驱动并且易于维护。
  • watch监听的是你定义的变量,当你定义的变量的值发生变化时,调用对应的方法。就好在div写一个表达式name,data里写入num和lastname,firstname,在watch里当num的值发生变化时,就会调用num的方法,方法里面的形参对应的是num的新值和旧值,而计算属性computed,计算的是Name依赖的值,它不能计算在data中已经定义过的变量。
  • methods方法,函数,绑定事件调用;不会使用缓存

15.什么是js的冒泡?Vue中如何阻止冒泡事件

  • js冒泡概念:当父元素内多级子元素绑定了同一个事件,js会依次从内往外或者从外往内(?)执行每个元素的该事件,从而引发冒泡
  • js解决冒泡:event.stopPropagation()
  • vue解决冒泡: 事件.stop,例如:@click.stop="" ,@mouseover.stop=""

16.vue 组件通信

  • 1.父组件与子组件传值
    父组件传给子组件:子组件通过props方法接受数据;
    子组件传给父组件:$emit方法传递参数

  • 2.非父子组件间的数据传递,兄弟组件传值
    eventBus,就是创建一个事件中心,相当于中转站,可以用它来传递事件和接收事件。也可使用vuex

17.axios的特点有哪些

  • 1、axios是一个基于promise的HTTP库,支持promise的所有API;
  • 2、它可以拦截请求和响应;
  • 3、它可以转换请求数据和响应数据,并对响应回来的内容自动转换为json类型的数据;
  • 4、它安全性更高,客户端支持防御XSRF;

18.vue中的 ref 是什么

  • ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例。

19.localstorage和sessionstorage是什么?区别是什么?

  • localstorage和sessionstorage一样都是用来存储客户端临时信息的对象,他们均只能存储字符串类型对象
  • localstorage生命周期是永久的,这意味着除非用户在浏览器提供的UI上清除
  • localstorage信息,否则这些信息将永远存在。
  • sessionstorage生命周期为当前窗口或标签,一旦窗口或标签被永久关闭了,那么所有通过sessionstorage存储的数据也将被清空。
  • 不同浏览器无法共享localstorage或sessionstorage中的信息。相同浏览器的不同页面可以共享相同的localstorage(页面属于相同的域名和端口),但是不同页面或标签间无法共享sessionstorage。这里需要注意的是,页面及标签仅指顶级窗口,如果一个标签页包含多个iframe标签他们属于同源页面,那么他们之间是可以共享sessionstorage的。

20.为什么要进行前后端分离?前后端分离的优势在哪里?劣势在哪里?

  • 优点:前端专门负责前端页面和特效的编写,后端专门负责后端业务逻辑的处理,前端追求的是页面美观、页面流畅、页面兼容等。后端追求的是三高(高并发、高可用、高性能)让他们各自负责各自的领域,让专业的人负责处理专业的事情,提高开发效率

  • 缺点:1 、当接口发生改变的时候,前后端都需要改变
    2、 当发生异常的时候,前后端需要联调–联调是非常浪费时间的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值