vue相关知识点整理

每个点都是用自己语言概括出来的,言简意赅,所以很好理解。

Vue优点

轻量级框架只有几十KB。视图数据结构分离,组件化,虚拟DOM,运行速度快性能高。

 

V-show跟v-if区别

:控制元素的显示跟隐藏。

不同v-if是条件渲染,惰性的,条件是true就渲染。动态向DOM树中添加删除DOM元素。V-show不管初始条件总是渲染,基于CSS 的 “display” 切换。

所以,运行时频繁切换条件用v-show,因为切换开销小,初始消耗大。反之用v-if。

 

<keep-alive></keep-alive>的作用

vue内置组件,可以让它包含的组件保留状态,避免重新渲染,内置include和exclude属性。对应钩子函数activated和deactivated,组件激活触发activated,移除触发deactivated。

 

V-modal的原理和使用

表单数据双向绑定,本质是语法糖。它里面是两个操作:①v-bind绑定value属性②v-on给当前元素绑定input事件。

 

Axios,以及安装

它是请求后台资源的模块。安装:npm install axios --save安装好,然后import引入,然后.get或者.post。如成功就返回在.then函数,失败就在.catch函数。

 

vue.cli项目里src目录每个文件夹和文件的用法

Assets静态资源;components组件;router路由;app.vue应用主组件;main.js入口文件。

 

Computed和watch的区别以及应用场景

Computed:是计算属性,依赖其他属性值,有缓存,一个属性受多个属性影响的时候用到,比如做购物车商品结算的时候。

Watch:观察作用,类似数据监听回调,监听数据变化时都会执行回调进行后续操作。当一条数据影响多条数据的时候用到,比如做搜索的时候。

 

Vue组件中的data为什么必须是一个函数

因为组件是用来复用的,而js的特性(对象是引用关系)。如果是对象,作用域没有隔离,子组件的data属性值相互影响。如果是函数,组件实例间的data属性值不会互相影响。而vue的实例,是不会被复用的,所以不存在引用对象的问题。

 

Vue双向数据绑定如何实现(vue实现双向绑定的原理)

数据劫持结合发布者订阅者模式。Object.defineProperty()来劫持各个属性的setter,getter。

 

单页面应用和多页面应用的区别以及优缺点

多页面(MPA):一个应用中有多个页面,页面跳转的时候整页刷新

单页面应用(SPA)浏览器初始的时候加载所有html,js,css。一旦加载完,不会因为用户操作进行页面重载或跳转;它用路由机制实现  变换交互,避免页面重载。

优点:用户体验好,快,内容改变不需要重载整页,对服务器压力较小。前后端分离。

缺点:不利于SEO,初次加载耗时多,导航不可用,只能自己实现前进后退。

 

Vue-router路由实现模式

三种:①hash:使用地址栏URL hash值(#符号后面的内容)。②history:利用H5 history interface的pushState()和replaceState()方法,需特定浏览器支持。③abstract:支持所有js运行环境。

 

Vue生命周期

生命周期:每个vue实例在被创建时都要经历的一个初始化过程。总共是8个阶段,也就是创建前(beforeCreated)、后(created),载入前(beforeMount)、后(mounted),更新前(beforeUpdate)、后(updated),销毁前(beforeDestory)、后(destoryed)。

 

Vue ssr,服务端渲染,优缺点

vue把渲染的整个HTML的工作在服务端完成,服务端形成HTML返回给客户端这个过程就叫做服务端渲染优点:更好SEO,首屏加载更快。缺点:更多的开发条件限制(只支持beforeCreated和create),更多的服务器负载(可采用缓存策略)

 

Vuex是什么,怎么使用,场景,几种属性/模块

它是专为vue应用程序开发的状态管理模式,每个vuex应用的核心就是store仓库。“store”就是一个容器,包含应用大部分的状态——state。

使用:①已安装vuex的情况下直接引用。②安装vuex,npm install vuex --save→src下建vuex文件夹→文件夹里建store.js→store.js里引入vue和vuex,使用use vuex→定义数据方法→实例化vuex.store。

场景:单页应用组件间状态,音乐播放,登录状态,加购物车。父子、隔代、兄弟组件通信。

五种,分别是stateGetterMutationsActionModule

 

Vue组件间通信有哪几种方式

父子组件通信:props/$emit。 父子、隔代、兄弟组件通信:vuex

 

虚拟dom优缺点,实现原理

优点:保证性能,提高开发效率,跨平台。缺点:性能要求高的应用无法针对性的极致优化)。

实现原理:①js模拟真实dom树,对真实dom进行抽象。②diff算法:比较两颗虚拟dom树的差异。③pach算法:把两个虚拟dom对象的差异应用到真正的DOM树。

 

对vue项目优化

①代码层面的优化:v-if和v-show,computed和watch区分使用场景,v-for遍历必须为item添加key且避免同时使用v-if,图片资源路由懒加载

②webpack层面优化:webpack对图片压缩,提取公共代码,提取组件的css...

③web技术优化:,浏览器缓存,cdn,谷歌performance查找性能问题。

 

MVVM框架

Mvc:model,controller,view,允许view和model直接通信,背离了开发遵循的开放封闭原则。

Mvvm:view,viewmodel,model:实现数据和视图的分离,通过数据驱动视图,开发只需要处理ViemMode。dom操作被封装,前端不需要操作DOM更新视图。完全解耦了view层和model层,这是前后端分离的重点。

实现的三个核心点:①响应式:如何监听data属性变化②模板解析:模板如何解析③渲染:模板如何被渲染成HTML。

 

Vue,angular,react的区别

与angular的区别:

①数据流: React是单项数据流,Vue是双向绑定②模板渲染:React通过原生语法如if, map等方法动态渲染模板,Vue通过指令动态渲染模板。

 

与react的区别:

同:特殊文件格式,都是用虚拟dom,重点都是组件,都有配套的路由和状态管理库。

不同:vue运行更快,react用jsx渲染页面,vue用简单模板。

 

Vue监听事件

Vue操作DOM的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值