vue面试题总汇

active-class是何人组件的习性?

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

镶套路由怎么定义?

以其实项目受到大家谋面逢多重叠嵌套的零件组合而成,然则我们安兑现嵌套路由于为?由此我们得以
VueRouter 的参数中使 children 配置,这样固然可丰富好之兑现路由于嵌套。
index.html,只来一个路由出口

<div id="app">  
    <!-- router-view 路由出口, 路由匹配到的组件将渲染在这里 -->  
    <router-view></router-view>  
</div>

main.js,路由于的重定向,就会师于页面华为载的下,就会拿home组件展现出来,因为重定向对了home组件,redirect的针对与path的总得一致。children里面是子路由,当然子路由里还得继承嵌套子路由。

import Vue from 'vue'  
import VueRouter from 'vue-router'  
Vue.use(VueRouter)  

//引入两个组件 

import home from "./home.vue"  
import game from "./game.vue"  
//定义路由  
const routes = [  
    { path: "/", redirect: "/home" },//重定向,指向了home组件  
    {  
        path: "/home", component: home,  
        children: [  
            { path: "/home/game", component: game }  
        ]  
    }  
]  
//创建路由实例  
const router = new VueRouter({routes})  

new Vue({  
    el: '#app',  
    data: {  
    },  
    methods: {  
    },  
    router  
})

home.vue,点击显示就会师拿子路由呈现在出,子路由的开口必须在父路由内,否则子路由无法呈现。

<template>  
    <div>  
        <h3>首页</h3>  
        <router-link to="/home/game">  
            <button>显示<tton>  
        </router-link>  
        <router-view></router-view>  
    </div>  
</template>

game.vue

 <template>  
    <h3>游戏</h3>  
</template>

AngularJS,岂定义vue-router的动态路由?怎么抱传过来的动态参数?

每当router目录下的index.js文件被,对path属性加上/:id。
使用router对象的params.id。

vue-router有哇三种植导航钩子?

三种,
先是栽:是大局导航钩子:router.beforeEach(to,from,next),成效:跳转前进展判定拦截。
亚种植:组件内的钩
其三栽:单独路由于独享组件

scss是呀?在vue.cli中的装使用手续是?有啊几大特点?

css的预编译。

入手续:

第一步:用npm 下三个loader(sass-loader、css-loader、node-sass)

仲步:在build目录找到webpack.base.config.js,在挺extends属性中加一个拓展.scss

其三步:依旧于与一个文件,配置一个module属性

季步:然后以组件的style标签加上lang属性 ,例如:lang=”scss”

发出哇几不胜特色:

1、可以据此变量,例如($变量名称=值);
2、能够用混合器,例如()
3、可以嵌套

mint-ui是啊?怎么动?说有足足三单零件使用方法?

据悉vue的前端组件库。npm安装,然后import样式和js,vue.use(mintUi)全局引入。在单个组件有引入:import
{Toast} from ‘mint-ui’。
零件一:Toast(‘登录成功’);
组件二:mint-header;
组件三:mint-swiper

v-model是什么?怎么利用? vue中标签怎么绑定事件?

可以兑现双向绑定,指令(v-class、v-for、v-if、v-show、v-on)。vue的model层的data属性。绑定事件:<input @click=doLog()/>

iframe的利弊?

iframe也称作嵌入式框架,嵌入式框架和框架网页类似,它好把一个网页的框架和情节嵌入在现有的网页中。

优点:

  1. 解决加载缓慢的老三在内容假使图标与广告等之加载问题
  2. Security sandbox
  3. 交互加载脚本
  4. 造福制作导航栏

缺点:

  1. iframe会阻塞主页面的Onload事件
  2. 随即情吧空,加载也待时
  3. 靡语意

简述一下Sass、Less,且证实分?

他们是动态的样式语言,是CSS预处理器,CSS上之相同种抽象层。他们是相同栽特有之语法/语言而编译成CSS。
变量符不雷同,less是@,而Sass是$;
Sass扶助条件语句,可以行使if{}else{},for{}循环等等。而Less不辅助;
Sass是基于Ruby的,是于服务端处理的,而Less是急需引入less.js来拍卖Less代码输出Css到浏览器

axios是什么?怎么利用?描述下她实现登录功能的流水线?

请求后台资源的模块。npm install axios
-S装好,然后发送的是跨域,需以布置文件被config/index.js举办设置。后台假设是Tp5则定义一个资源路由。js中运用import进来,然后.get或.post。再次来到在.then函数中设成功,战败则是在.catch函数中

axios+tp5上阶中,调用axios.post(‘api/user’)是举行的呦操作?axios.put(‘api/user/8′)呢?

跨域,添加用户操作,更新操作。

vuex是什么?怎么利用?哪个种类效用场景下其?

vue框架中状态管理。在main.js引入store,注入。新建了一个索引store,…..
export
。场景有:单页应用中,组件之间的状态。音乐广播、登录状态、参预购物车

mvvm框架是呀?它和外框架(jquery)的分是什么?哪些境况适合?

一个model+view+viewModel框架,数据模型model,viewModel连接两单

区别:vue数据驱动,通过数量来展现看图层而未是节点操作。

场合:数据操作相比较多之境况,更加方便

从今定义指令(v-check、v-focus)的道暴发哪?它起哪钩子函数?还有哪些钩子函数参数?

大局定义指令:在vue对象的directive方法中有少独参数,一个凡是凭令名,此外一个凡函数。组件内定义指令:directives

钩子函数:bind(绑定事件触发)、inserted(节点插入的时节接触)、update(组件内有关改进)

钩子函数参数:el、binding

说暴发最少4种vue当中的命令与其的用法?

v-if:判断是否藏;v-for:数据循环出来;v-bind:class:绑定一个性;v-model:实现双向绑定

vue-router是啊?它来哪些组件?

vue用来描写路由于一个插件。router-link、router-view

导航钩子有什么?它们发出什么参数?

导航钩子有:

a/全局钩子和零部件内独享的钩。b/beforeRouteEnter、afterEnter、beforeRouterUpdate、beforeRouteLeave

参数:

出to(去之很路由)、from(离开的路由)、next(一定要用是函数才会去到下一个路由,倘使未用便挡)最常用就随即几乎种植

Vue的双向数据绑定原理是呀?

vue.js
是使数据恫吓结合发表者-订阅者情势的道,通过Object.defineProperty()来恐吓各样属性的setter,getter,在数码变动时公布音讯让订阅者,触发相应的监听回调。

具体步骤:

率先步:需要observe的多寡对象举办递归遍历,包括子属性对象的属性,都丰硕setter和getter
这样的话,给这个目标的某个值赋值,就会面触发setter,那么尽管可以监听到了数码变化

第二步:compile解析模板指令,将模板被之变量替换成数据,然后初步化渲染页面视图,并将每个指令对应之节点绑定更新函数,添加监听数据的订阅者,一旦数据爆发变动,收到布告,更新视图

其三步:沃特(Wat)cher订阅者是Observer和Compile之间通信的桥,重要做的政工是:
1、在自家实例化时向属性订阅器(dep)里面添加自己
2、自身必须来一个update()方法
3、待属性变动dep.notice()通知时,能调用自身之update()方法,并触发Compile中绑定的回调,则功成身退。

季步:MVVM作为数据绑定的入口,整合Observer、Compile和沃特(Wat)cher三者,通过Observer来监听自己之model数据变动,通过Compile来分析编译模板指令,最后使沃特(Wat)cher搭起Observer和Compile之间的通信桥梁,达到数变化
-> 视图更新;视图交互变(input) -> 数据model变更的双向绑定效果。

告详细说生你针对vue生命周期的了然?

合计分为8独号创建前/后,载入前/后,更新前/后,销毁前/后

创建前/后: 在beforeCreated阶段,vue实例的挂载元素$el和数据对象data都为undefined,还未初始化。在created阶段,vue实例的数据对象data有了,$el还没有。

载入前/后:在beforeMount阶段,vue实例的$el和data都初始化了,但还是挂载之前为虚拟的dom节点,data.message还未替换。在mounted阶段,vue实例挂载完成,data.message成功渲染。

更新前/后:当data变化时,会触发beforeUpdate和updated方法。

销毁前/后:在执行destroy方法后,对data的改变不会再触发周期函数,说明此时vue实例已经解除了事件监听以及和dom的绑定,但是dom结构依然存在

伸手说生封装 vue 组件的长河?

首先,组件可以升级整个项目之开销效用。可以将页面抽象成五个绝对独立的模块,解决了我们传统体系支付:效能低、难保障、复用性等题材。

然后,使用Vue.extend方法成立一个零件,然后使Vue.component方法注册组件。子组件需要多少,可以以props中经受定义。而分组件修改好数据后,想将数量传递给二叔组件。可以下emit方法。

卿是怎认识vuex的?

vuex可以了解也平种植出格局或者框架。比如PHP有thinkphp,java有spring等。
透过状态(数据源)集中管理驱动组件的变动(好比spring的IOC容器对bean进行集中管理)。

应用级的状态集中在store中;
改变状态的法是付mutations,这是单共同的物;
异步逻辑应该封装在action中。

vue-loader是啊?使用它的用途有哪?

解析.vue文件的一个加载器,跟template/js/style转换成js模块。

用:js可以写es6、style样式可以scss或less、template可以加jade等

要说生vue.cli项目受到src目录每个文件夹和文书之用法?

assets文件夹是放静态资源;components是松开组件;router是定义路由相关的布置;view视图;app.vue是一个拔取主组件;main.js是进口文件

vue.cli中争利用由定义的组件?有遭受了什么样问题也?

率先步:在components目录新建你的组件文件(smithButton.vue),script一定要export
default {

老二步:在待为此的页面(组件)中导入:import smithButton from
‘../components/smithButton.vue’

老三步:注入及vue的子组件的components属性下面,components:{smithButton}

第四步:在template视图view中使用,<smith-button> </smith-button>
问题有:smithButton命名,使用的时候即使smith-button。

聊你针对Vue.js的template编译的知道?

大概,就是优先转化成AST树,再得到的render函数重临VNode(Vue的虚构DOM节点)

端详步骤:

第一,通过compile编译器把template编译成AST语法树(abstract syntax tree

源代码的空洞语法结构的树状表现格局),compile是createCompiler的回来值,createCompiler是用以创立编译器的。此外compile还担负统一option。

下一场,AST会经过generate(将AST语法树转化成render
funtion字符串的长河)得到render函数,render的重回值是VNode,VNode是Vue的杜撰DOM节点,里面来(标签名、子节点、文本等等)

vue的历史记录

history 记录面临前行或者后下降多少步

vuejs与angularjs以及react的区别?

1.与AngularJS的区别

相同点:

犹援助指令:内置指令与由定义指令。

还援助过滤器:内置过滤器和于定义过滤器。

犹协助双向数据绑定。

还不补助低端浏览器。

不同点:

1.AngularJS之攻成本大,比如扩大了Dependency
Injection特性,而Vue.js本身提供的API都相比较简单、直观。

2.每当性质达到,AngularJS依赖对数据做脏检查,所以沃特cher越多越慢。

Vue.js使用基于倚重追踪的观赛又采用异步队列更新。所有的数量依然单身触发的。

于大的动来说,这多少个优化差别或于显明的。

2.与React的区别

相同点:

React用特殊之JSX语法,Vue.js在组件开发中吗推崇编写.vue特殊文件格式,对文件内容都发一些预约,两者都需要编译后动。

着力思想同样:一切都是组件,组件实例之间可嵌套。

犹提供合理合法之钩子函数,可以让开发者定制化地失去处理要求。

犹无放手列数AJAX,Route等效果及基本包,而是坐插件的主意加载。

于组件开发被都协理mixins的特色。

不同点:

React依赖Virtual DOM,而Vue.js使用的凡DOM模板。React接纳的Virtual
DOM会针对渲染出来的结果召开脏检查。

Vue.js在模板被提供了命令,过滤器等,可以好有益,快速地操作DOM。

vue生命周期面试题

咦是vue生命周期?

Vue
实例从创建及销毁的长河,就是生命周期。也虽然是从先导创制、开首化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等同样层层过程,我们遂这是
Vue 的生命周期。

vue生命周期的意图是啊?

她的生命周期中生出差不多独事件钩子,让咱以控制总体Vue实例的过程不时还易于形成好的逻辑。

vue生命周期总共暴发几乎个阶段?

她可共分为8只级次:创制前/后, 载入前/后,更新前/后,销毁前/销毁后

首先赖页面加载会硌发啊八只钩?

先是不良页面加载时碰面触发 beforeCreate, created, beforeMount, mounted
这几乎单钩

DOM 渲染在 哪个周期中不怕既就?

DOM 渲染在 mounted 中就已经到位了

简描述每个周期具体可哪些情状?

生命周期钩子的部分使用办法: beforecreate :
可以于登时加个loading事件,在加载实例时触发 created :
最先化完成时之轩然大波写在此处,如在当时收loading事件,异步请求也适宜当此调用
mounted : 挂载元素,获取到DOM节点 updated :
固然对数据统一处理,在此地描绘上相应函数 beforeDestroy :
可以进行一个认可截止事件的认可框 nextTick : 更新数据后立马操作dom

arguments是一个伪数组,没有遍历接口,不能遍历

cancas和SVG的是呀以及界别

SVG

SVG 是一律栽采取 XML 描述 2D 图形的言语。
SVG 基于 XML,这代表 SVG DOM
中的每个元素依然可用之。您得吗某元素附加 JavaScript 事件处理器。
每当 SVG 中,每个被绘制的图均被视为对象。假设 SVG
对象的习性暴发变化,那么浏览器会自行重现图形。

Canvas

Canvas 通过 JavaScript 来绘制 2D 图形。
Canvas 是逐像素举办渲染的。
当 canvas
中,一旦图形被绘制就,它便未汇合持续取得浏览器的眷顾。假设那多少个地点爆发变化,那么任何场地吧急需再行绘制,包括另外可能已经被图形覆盖的对象。

Canvas 与 SVG 的比较

Canvas

依赖分辨率
不支持事件处理器
弱的文本渲染能力
能够以 .png 或 .jpg 格式保存结果图像
最适合图像密集型的游戏,其中的许多对象会被频繁重绘

SVG

不依赖分辨率
支持事件处理器
最适合带有大型渲染区域的应用程序(比如谷歌地图)
复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
不适合游戏应用

相关文章