vue(vue面试题)

佚名 2023-05-18

本文目录一览:

Vue是什么?

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的 渐进式框架 ,发布于 2014 年 2 月。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。 Vue 的核心库只关注视图层 ,不仅易于上手,还便于与第三方库(如: vue-router , vue-resource , vuex )或既有项目整合。

我们知道MVVM 表示如下:

在 MVVM 架构中,是不允许 数据 和 视图 直接通信的,只能通过 ViewModel 来通信,而 ViewModel就是定义了一个 Observer 观察者。

至此,我们就明白了,Vue.js 就是一个 MVVM 的实现者,他的核心就是实现了 DOM 监听 与 数据绑定 。

当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用 Object.defineProperty 把这些属性全部转为 getter/setter 。 Object.defineProperty 是 ES5 中一个无法 shim 的特性,这也就是为什么 Vue 不支持 IE8 以及更低版本浏览器 。

这些 getter/setter 对用户来说是不可见的,但是在内部它们让 Vue 追踪依赖,在属性被访问和修改时通知变化。这里需要注意的问题是浏览器控制台在打印数据对象时 getter/setter 的格式化并不同,所以你可能需要安装 vue-devtools 来获取更加友好的检查接口。

每个组件实例都有相应的 watcher 实例对象,它会在组件渲染的过程中把属性记录为依赖,之后当依赖项的 setter 被调用时,会通知 watcher 重新计算,从而致使它关联的组件得以更新。

[img]

vue是什么软件

vue官网说:Vue.js(读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式的JavaScript框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。

1、易用

已经会了 HTML、CSS、JavaScript,即可阅读指南开始构建应用!

2、灵活

不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩。

3、高效

虚拟的DOM的核心思想是:对复杂的文档DOM结构,提供一种方便的工具,进行最小化地DOM操作。

(1) 提供一种方便的工具,使得开发效率得到保证

(2) 保证最小化的DOM操作,使得执行效率得到保证

扩展资料

1、Vue的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。

2、Vue的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

3、Vue可以做从简单到复杂的前端单页应用,随处可见的Web前端都可以用Vue来开发。而且Vue上手速度快、功能强大,且提供了非常好用的脚手架vue-cli,很简单就可以构建并让自己的项目跑起来。

参考资料

百度百科-Vue.js

Vue基础知识

数据双向绑定,组件化,单文件组件

全局api: vue.extend 、 vue.set

实例选项: new Vue() 、 el 、 data 、 compents 都是vue实例选项

实例属性和 *** : vm.$on 、 vm.$data 、 vm.$destroy() 在$都是vue的实例和 ***

指令: directive

内置组件: components/compontents 、 keep-alive/keep-alive 、 router-view/router-view

数组中不可用的 *** :slice,concat;

直接修改数组list[i] = 值,不可以这样直接修改;

Vue.set(数组,索引,{值}) vue的全局 *** set来更改数组的某一项的值

vue(vue面试题)  第1张

标签属性和条件渲染

标签属性: v-bind:href='link"; 等效于 :href="link" 动态绑定;

条件渲染: v-if 、 v-else 、 v-show ;

数据绑定: {{...}} 、 v-html (原始-HTML)、 v-text ;

事件绑定-内置事件绑定,自定义事件绑定

v-on:click="run" 等效于 @:click="run" 事件绑定;

自定义事件绑定: 父组件自定义事件

my-compented @my-event='toggle'/my-compented

子组件触发 my-event 自定义事件; this.$emit('my-event', opation);

父组件执行toggle 函数;

计算属性和数据监听

computed选项 -计算属性:根据我们调用属性来跟新,调用的属性没有变更,我们computed选项里面的 *** 读取的是缓存;

页面内容响应数据v-once

如果你需要页面内容响应数据的变化,就不加v-once。

如果你需要页面内容渲染后,不随数据的变化而变化,就加上这个。

对于一些固定不变的组件,在调用时我们可以加上v-once,只在第一次渲染执行,保存数据在内存中,后面再调用直接从内容中提取,提高执行效率。

应用

组件的通信

p:is = "动态的组件名"/p 等同于 动态的组件名/动态的组件名 动态绑定组件

注:Vue有个单项数据流的概念:即父组件传递给子组件的参数,子组件不能直接修改;防止引用类型参数被修改后,如果父组件中其他地方也使用了此参数会受到影响。

子组件 props 接受的两种形式:

数组: ['first-name','two-name'] ,从父组件传递两个属性值;

动态展现: {{firstName}}

对象:

slot:插槽

父组件插件里面定义的内容放到子组件 slot 中:

子组件

vue高级功能--过渡和动画

自定义指令:

使用 vue-cli的优势:

成熟的vue项目架构设计;

本地测试服务器;

集成打包上线方案 webpack

npm install vue-cli -g :全局安装vue-cli

vue init webpack my-project :初始化项目

npm install 安装项目依赖

npm run dev :在localhost启动测试服务器;

npm run bulid :生成上线目录(部署)

a、安装 vue-router

b、配置路由

6、关闭eslint

dev模式下,默认会做eslint检测,若要关闭,打开 config/index.js ,设置 useEslint: false ,${}占位符,多行字符串

7、生命周期

8、支持es6

es6中很多新特性很好用class、promise、then、catch、...(数组转换符号)、函数设置参数默认值等

a、安装babel-polyfill

b、在入口main.js文件当中引入:

c、找到build文件夹下的webpack.base.conf.js

文章参考: 慕课网-欧米雪儿lyy

Vue基础篇

内容简介:

1)Vue指令

2)computed和watch

3)生命周期钩子

4)组件间的传参

5)插槽

6)修饰符

7)nextTick()

前端三大框架:

Vue:尤雨溪开发

React:Facebook主导开发

Angular:谷歌主导开发

为什么选择Vue?

1.国内Vue的市场份额占比多

2.简单易上手,非常适合前端开发初学者学习

前置知识:

1.HTML、CSS和JS基础

2.了解Node和npm

3.webpack(可选,vue-cli已经封装了打包功能)

使用Vue的两种方式:

1.直接script标签引入vue.js文件

2.基于Node环境创建Vue项目(使用vue-cli初始化一个Vue项目)

前端框架与库的区别

• jquery 库 - DOM(操作DOM) + 动画+ ajax请求

• 框架 - 全方位功能

一、指令

指令(Directives)是带有 v- 前缀的特殊属性。

插值表达式和v-text指令被直接解析为字符串;元素绑定 v-html 指令后,解析了msg 变量值里面的html标签,输出真正的html元素。

v-model也可用在自定义组件上。

5.v-for(列表渲染)

使用v-for时应绑定key属性,key属性可以用来提升v-for渲染的效率

Vue 将被侦听的数组的变更 *** 进行了包裹,所以它们也将会触发视图更新。这些被包裹过的 *** 包括:

push()

pop()

shift()

unshift()

splice()

sort()

reverse()

由于 JavaScript 的限制,Vue 不能检测数组、对象的以下变化:1. 利用索引直接设置数组的某一项 2. 对象属性的添加或删除

二、computed和watch

三、生命周期钩子

什么是Vue生命周期?

Vue 实例从创建到销毁的过程,就是生命周期。也就是从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程。

总共分为8个阶段:创建前/后,挂载前/后,更新前/后,销毁前/后。

1)beforeCreate

此时实例上只有一些生命周期函数和默认的事件,此时data computed watch methods上的 *** 和数据均不能访问。

2)created

此时可以读取data的值,并可以对其进行操作,把 *** 、计算属性也都挂载到了实例。但是依旧不能访问el,不能获取到DOM元素。

在这个钩子函数中,我们可以进行http请求,把请求到的数据储存在data中。

3)模板编译,把data里面的数据和vue语法写的模板编译成HTML

4)beforeMount

将编译完成的HTML挂载到对应虚拟DOM,此时还未挂载到页面上

5)mounted

编译好的HTML已挂载到页面上

6)beforeUpdate和updated

数据更新时调用,通常使用计算属性或侦听器取而代之

7)beforeDestroy

销毁所有观察者、组件及事件监听

8)destroyed

组件已经完全销毁,组件中的数据、 *** 、计算属性、过滤器等都已不可用。

四、组件间的通信

1.父子组件间的通信

父子组件通信可以总结为props向下传递,事件向上传递。

单向数据流:父级 prop 的更新会向下流动到子组件中,但反过来不行。

每个Vue实例都实现了事件接口:子组件使用 this.$emit(eventName,optionalPayload) 触发自定义事件。父组件在使用子组件的地方直接用v-on来监听子组件触发的事件。

父组件通过ref直接调用子组件中的 *** 。

子组件调用父组件中的 *** :

1)子组件中通过 this.$parent.fatherMethod() 来调用父组件的 ***

2)子组件用$emit向父组件触发一个事件,父组件监听这个事件

3)父组件通过props把 *** 传入子组件中(type: Function),在子组件里直接调用这个 ***

2.兄弟组件间的通信

其中一种 *** 是让父组件充当两个子组件之间的中间件(中继);

另一种就是使用EventBus(事件总线),它允许两个组件之间直接通信,而不需要涉及父组件:

Vue原型上的 *** :

五、插槽

3)作用域插槽

使用场景:

在使用ElementUI组件库的el-table组件时,表格的编辑和删除操作要用到作用域插槽。因为el-table组件,就是当前组件的子组件。通过作用域插槽很容易拿到当前表格行的索引和内容,这样就可以很方便地进行编辑、删除的操作。v-slot指令是Vue2.6之后,作用域插槽的新语法,旧语法(slot-scope)现在还保留,但3.0之后会移除。

六、修饰符

vue(vue面试题)  第2张

2.事件修饰符

vue提倡的是在 *** 中只有纯粹的数据逻辑,而不是去处理 DOM 事件细节,所以提供了事件修饰符用于DOM的事件处理。

3.按键修饰符

七、nextTick()

定义:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个 *** ,获取更新后的 DOM。(当数据更新了,在dom中渲染后,自动执行nextTick的回调)

应用场景:需要在视图更新之后,基于新的视图进行操作。

vue是什么意思

vue的意思:

abbr. 虚拟机脱壳引擎(Virtual Machine Unpack Engine);可视用户环境(Visual User Environment);真实用户环境(Veridical User Environment);视图文件

短语

Vue sur mer 看海

Sign Vue 高幅型

Pearson VUE 机考公司 ; 烟台思科认证考点 ; 陕西先通网络技术学校 ; 答题软件使用指南

BELLE VUE 嘉茂园 ; 豪景园 ; 贝利景观酒店

Belle Vue Residences 嘉茂园

garde-vue-m 遮阳帽

vue-cli 脚手架 ; 流程 ; 走起 ; 原型

例句

Example Vue script for accessing arguments.

访问参数的示例vue脚本。

评论: 阅读:
猜你喜欢