01
2020
07

vue常用的UI组件库

答:Mint UI,element,VUX


01
2020
07

axios的特点有哪些

答:从浏览器中创建XMLHttpRequests;node.js创建http请求;支持Promise API;拦截请求和响应;转换请求数据和响应数据;取消请求;自动换成json。axios中的发送字段的参数是data跟params两个,两者的区别在于params是跟请求地址一起发送的,data的作为一个请求体进行发送params一般适用于get请求,data一般适用于post put 请求。
01
2020
07

RouterLink在IE和Firefox中不起作用(路由不跳转)的问题

答: 方法一:只用a标签,不适用button标签;方法二:使用button标签和Router.navigate方法
01
2020
07

vue更新数组时触发视图更新的方法

答:push();pop();shift();unshift();splice(); sort();reverse()
01
2020
07

vue初始化页面闪动问题

答:使用vue开发时,在vue初始化之前,由于div是不归vue管的,所以我们写的代码在还没有解析的情况下会容易出现花屏现象,看到类似于{{message}}的字样,虽然一般情况下这个时间很短暂,但是我们还是有必要让解决这个问题的。首先:在css里加上[v-cloak] {display: none;}。如果没有彻底解决问题,则在根元素加上style="display: none;" :style="{display: 'block'}"
01
2020
07

params和query的区别

答:用法:query要用path来引入,params要用name来引入,接收参数都是类似的,分别是this.$route.query.name和this.$route.params.name。url地址显示:query更加类似于我们ajax中get传参,params则类似于post,说的再简单一点,前者在浏览器地址栏中显示参数,后者则不显示注意点:query刷新不会丢失query里面的数据params刷新 会 丢失 params里面的数据。
01
2020
07

请说下封装 vue 组件的过程?

答:1. 建立组件的模板,先把架子搭起来,写写样式,考虑好组件的基本逻辑。(os:思考1小时,码码10分钟,程序猿的准则。)  2. 准备好组件的数据输入。即分析好逻辑,定好 props 里面的数据、类型。  3. 准备好组件的数据输出。即根据组件逻辑,做好要暴露出来的方法。  4. 封装完毕了,直接调用即可
24
2020
06

Vue2中注册在router-link上事件无效解决方法

答: 使用@click.native。原因:router-link会阻止click事件,.native指直接监听一个原生事件。
24
2020
06

Vue里面router-link在电脑上有用,在安卓上没反应怎么解决?

答:Vue路由在Android机上有问题,babel问题,安装babel polypill插件解决。
24
2020
06

你们vue项目是打包了一个js文件,一个css文件,还是有多个文件?

答:根据vue-cli脚手架规范,一个js文件,一个CSS文件。
24
2020
06

vue slot

答:简单来说,假如父组件需要在子组件内放一些DOM,那么这些DOM是显示、不显示、在哪个地方显示、如何显示,就是slot分发负责的活。
21
2020
06

Vue-router跳转和location.href有什么区别

答:使用location.href='/url'来跳转,简单方便,但是刷新了页面;使用history.pushState('/url'),无刷新页面,静态跳转;引进router,然后使用router.push('/url')来跳转,使用了diff算法,实现了按需加载,减少了dom的消耗。其实使用router跳转和使用history.pushState()没什么差别的,因为vue-router就是用了history.pushState(),尤其是在h
19
2020
06

SPA首屏加载慢如何解决

答:安装动态懒加载所需插件;使用CDN资源。
19
2020
06

delete和Vue.delete删除数组的区别

答:delete只是被删除的元素变成了 empty/undefined 其他的元素的键值还是不变。Vue.delete 直接删除了数组 改变了数组的键值。
19
2020
06

引进组件的步骤

答: 在template中引入组件;在script的第一行用import引入路径;用component中写上组件名称。
19
2020
06

vue的两个核心点

答:数据驱动、组件系统数据驱动:ViewModel,保证数据和视图的一致性。组件系统:应用类UI可以看作全部是由组件树构成的。
19
2020
06

vue常用的修饰符

答:.stop:等同于JavaScript中的event.stopPropagation(),防止事件冒泡;.prevent:等同于JavaScript中的event.preventDefault(),防止执行预设的行为(如果事件可取消,则取消该事件,而不停止事件的进一步传播);.capture:与事件冒泡的方向相反,事件捕获由外到内;.self:只会触发自己范围内的事件,不包含子元素;.once:只会触发一次。
17
2020
06

v-if和v-for的优先级

答:当 v-if 与 v-for 一起使用时,v-for 具有比 v-if 更高的优先级,这意味着 v-if 将分别重复运行于每个 v-for 循环中。所以,不推荐v-if和v-for同时使用。如果v-if和v-for一起用的话,vue中的的会自动提示v-if应该放到外层去。
17
2020
06

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

答:单页面应用(SPA),通俗一点说就是指只有一个主页面的应用,浏览器一开始要加载所有必须的 html, js, css。所有的页面内容都包含在这个所谓的主页面中。但在写的时候,还是会分开写(页面片段),然后在交互的时候由路由程序动态载入,单页面的页面跳转,仅刷新局部资源。多应用于pc端。多页面(MPA),就是指一个应用中有多个页面,页面跳转时是整页刷新单页面的优点:用户体验好,快,内容的改变不需要重新加载整个页面,基于这一点spa对服务器压力较小;前后端分离;页面效果会比较炫酷(比如切换页面内
17
2020
06

Vue中双向数据绑定是如何实现的?

答:vue 双向数据绑定是通过 数据劫持 结合 发布订阅模式的方式来实现的, 也就是说数据和视图同步,数据发生变化,视图跟着变化,视图变化,数据也随之发生改变;核心:关于VUE双向数据绑定,其核心是 Object.defineProperty()方法。
17
2020
06

渐进式框架的理解

答:主张最少;可以根据不同的需求选择不同的层级;
17
2020
06

vue组件中data为什么必须是一个函数?

答:因为JavaScript的特性所导致,在component中,data必须以函数的形式存在,不可以是对象。  组建中的data写成一个函数,数据以函数返回值的形式定义,这样每次复用组件的时候,都会返回一份新的data,相当于每个组件实例都有自己私有的数据空间,它们只负责各自维护的数据,不会造成混乱。而单纯的写成对象形式,就是所有的组件实例共用了一个data,这样改一个全都改了。
17
2020
06

$nextTick的使用

答:当你修改了data的值然后马上获取这个dom元素的值,是不能获取到更新后的值,你需要使用$nextTick这个回调,让修改后的data值渲染更新到dom元素之后在获取,才能成功。
16
2020
06

v-on可以监听多个方法吗?

答:可以,栗子:<input type="text" v-on="{ input:onInput,focus:onFocus,blur:onBlur, }">。
16
2020
06

分别简述computed和watch的使用场景

答:computed:    当一个属性受多个属性影响的时候就需要用到computed    最典型的栗子: 购物车商品结算的时候watch:    当一条数据影响多条数据的时候就需要用watch    栗子:搜索数据
16
2020
06

请说出vue.cli项目中src目录每个文件夹和文件的用法?

答:assets文件夹是放静态资源;components是放组件;router是定义路由相关的配置; app.vue是一个应用主组件;main.js是入口文件。
16
2020
06

v-modal的使用。

答:v-model用于表单数据的双向绑定,其实它就是一个语法糖,这个背后就做了两个操作:v-bind绑定一个value属性;v-on指令给当前元素绑定input事件。
16
2020
06

axios及安装?

答:请求后台资源的模块。npm install axios --save装好,js中使用import进来,然后.get或.post。返回在.then函数中如果成功,失败则是在.catch函数中。
16
2020
06

为什么使用key?

答:需要使用key来给每个节点做一个唯一标识,Diff算法就可以正确的识别此节点。作用主要是为了高效的更新虚拟DOM。
16
2020
06

说出几种vue当中的指令和它的用法?

答:v-model双向数据绑定;v-for循环;v-if v-show 显示与隐藏;v-on事件;v-once: 只绑定一次。
16
2020
06

如何获取dom?

答:ref="domName" 用法:this.$refs.domName
16
2020
06

keep-alive /keep-alive的作用是什么?

答:keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。
16
2020
06

如何让CSS只在当前组件中起作用?

答:在组件中的style前面加上scoped
16
2020
06

v-show和v-if指令的共同点和不同点?

答: 共同点:都能控制元素的显示和隐藏;不同点:实现本质方法不同,v-show本质就是通过控制css中的display设置为none,控制隐藏,只会编译一次;v-if是动态的向DOM树内添加或者删除DOM元素,若初始值为false,就不会编译了。而且v-if不停的销毁和创建比较消耗性能。总结:如果要频繁切换某节点,使用v-show(切换开销比较小,初始开销较大)。如果不需要频繁切换某节点使用v-if(初始渲染开销较小,切换开销比较大)。
16
2020
06

子组件像父组件传递事件?

答:$emit方法
16
2020
06

vue父组件向子组件传递数据?

答:通过props
16
2020
06

vue优点?

答:轻量级框架:只关注视图层,是一个构建数据的视图集合,大小只有几十kb;简单易学:国人开发,中文文档,不存在语言障碍 ,易于理解和学习;双向数据绑定:保留了angular的特点,在数据操作方面更为简单;组件化:保留了react的优点,实现了html的封装和重用,在构建单页面应用方面有着独特的优势;视图,数据,结构分离:使数据的更改更为简单,不需要进行逻辑代码的修改,只需要操作数据就能完成相关操作;虚拟DOM:dom操作是非常耗费性能的, 不再使用原生的dom操作节点,极大解放dom操作,但具体
28
2020
04

对keep-alive 的了解?

keep-alive是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。在vue 2.1.0 版本之后,keep-alive新加入了两个属性: include(包含的组件缓存) 与 exclude(排除的组件不缓存,优先级大于include) 。使用方法<keep-alive include='include_components' exclude='exclude_components'>  <component&
28
2020
04

css只在当前组件起作用

答:在style标签中写入scoped即可 例如:<style scoped></style>
28
2020
04

v-if 和 v-show 区别

答:v-if按照条件是否渲染,v-show是display的block或none
28
2020
04

vue.js的两个核心是什么?

答:数据驱动、组件系统
28
2020
04

vue几种常用的指令

答:v-for 、 v-if 、v-bind、v-on、v-show、v-else
28
2020
04

vue常用的修饰符?

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

v-on 可以绑定多个方法吗?

答:可以
28
2020
04

vue中 key 值的作用?

答:当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用“就地复用”策略。如果数据项的顺序被改变,Vue 将不会移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素。key的作用主要是为了高效的更新虚拟DOM。
28
2020
04

什么是vue的计算属性?

答:在模板中放入太多的逻辑会让模板过重且难以维护,在需要对数据进行复杂处理,且可能多次使用的情况下,尽量采取计算属性的方式。好处:①使得数据处理结构清晰;②依赖于数据,数据更新,处理结果自动更新;③计算属性内部this指向vm实例;④在template调用时,直接写计算属性名即可;⑤常用的是getter方法,获取数据,也可以使用set方法改变数据;⑥相较于methods,不管依赖的数据变不变,methods都会重新计算,但是依赖数据不变的时候computed从缓存中获取,不会重新计算。
28
2020
04

vue等单页面应用及其优缺点

答:优点:Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件,核心是一个响应的数据绑定系统。MVVM、数据驱动、组件化、轻量、简洁、高效、快速、模块友好。缺点:不支持低版本的浏览器,最低只支持到IE9;不利于SEO的优化(如果要支持SEO,建议通过服务端来进行渲染组件);第一次加载首页耗时相对长一些;不可以使用浏览器的导航按钮需要自行实现前进、后退。
28
2020
04

怎么定义 vue-router 的动态路由? 怎么获取传过来的值

答:在 router 目录下的 index.js 文件中,对 path 属性加上 /:id,使用 router 对象的 params.id 获取。
28
2020
04

Vue组件间的参数传递

1.父组件与子组件传值父组件传给子组件:子组件通过props方法接受数据;子组件传给父组件:$emit方法传递参数2.非父子组件间的数据传递,兄弟组件传值eventBus,就是创建一个事件中心,相当于中转站,可以用它来传递事件和接收事件。项目比较小时,用这个比较合适。(虽然也有不少人推荐直接用VUEX,具体来说看需求咯。技术只是手段,目的达到才是王道。)
28
2020
04

Vue实现数据双向绑定的原理:Object.defineProperty()

vue实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应监听回调。当把一个普通 Javascript 对象传给 Vue 实例来作为它的 data 选项时,Vue 将遍历它的属性,用 Object.defineProperty 将它们转为 getter/setter。用户看不到 getter/setter,但是在内部它们让 Vue 追踪依赖,在属性被访
28
2020
04

DOM 渲染在 哪个周期中就已经完成?

答:DOM 渲染在 mounted 中就已经完成了。
28
2020
04

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

答:会触发 下面这几个beforeCreate, created, beforeMount, mounted 。
28
2020
04

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

答:它可以总共分为8个阶段:创建前/后, 载入前/后,更新前/后,销毁前/销毁后。
28
2020
04

vue生命周期的作用是什么?

答:它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻辑。
28
2020
04

什么是vue生命周期?

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

Vue的生命周期

beforeCreate(创建前) 在数据观测和初始化事件还未开始created(创建后) 完成数据观测,属性和方法的运算,初始化事件,$el属性还没有显示出来beforeMount(载入前) 在挂载开始之前被调用,相关的render函数首次被调用。实例已完成以下的配置:编译模板,把data里面的数据和模板生成html。注意此时还没有挂载html到页面上。mounted(载入后) 在el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用。实例已完成以下的配置:用上面编译好的html内容替
28
2020
04

对于MVVM的理解?

MVVM 是 Model-View-ViewModel 的缩写。Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。View 代表UI 组件,它负责将数据模型转化成UI 展现出来。ViewModel 监听模型数据的改变和控制视图行为、处理用户交互,简单理解就是一个同步View 和 Model的对象,连接Model和View。在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双
07
2020
04

什么方法可以替换v-model?

  <template>  <div id="listBox">    <p>v-model动态监听输入的值{{value1}} <br /></p>     <p>使用v-model实现的监听:<input type="text" v-model="value1" ><
07
2020
04

如何给vue自定义组件添加点击事件?

需要在@click后面加上.native,官方对于native的解释为:.native -——监听组件根元素的原生事件正确写法:<my-button  @click.native="alert1()" names="删除" v-bind:item2="btdata"></my-button> 
07
2020
04

vue路由钩子函数:

路由的钩子函数总结有6个全局的路由钩子函数:beforeEach、afterEach单个的路由钩子函数:beforeEnter组件内的路由钩子函数:beforeRouteEnter、beforeRouteLeave、beforeRouteUpdate 模块一:全局导航钩子函数1、vue router.beforeEach(全局前置守卫)beforeEach的钩子函数,它是一个全局的before 钩子函数,(beforeEach)意思是在 每次每一个路由改变的时候都得执行一遍。它的三个参
07
2020
04

axios和ajax的区别:

1.区别 axios是通过promise实现对ajax技术的一种封装,就像jQuery实现ajax封装一样。 简单来说: ajax技术实现了网页的局部数据刷新,axios实现了对ajax的封装。 axios是ajax ajax不止axios。Ajax:Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。Ajax = 异步 JavaScript 和 XML(标准通用标记语言的子集)。Aj
07
2020
04

vue动态路由传值:

vue动态路由配置,vue路由传参动态路由:  当我们很多个页面或者组件都要被很多次重复利用的时候,我们的路由都指向同一个组件,这时候从不同组件进入一个"共用"的组件,并且还要传参数,渲染不同的数据  这就要用到动态路由跟路由传参了!首先我们来了解下router-link这个组件:  简单来说,它是个导航器,利用to属性导航到目标组件,并且在渲染的时候会自动生成一个a标签,当然官方也有说明,加个tag标签属性就可以渲染不同的标签,可以浏览器端查看到  并且当一个导航器被激活的
07
2020
04

vue自定义指令:

  1.创建局部指令var app = new Vue({    el: '#app',    data: {        },    // 创建指令(可以多个)    directives: {        // 指令名称        dir1: {&nb
07
2020
04

vue生命周期函数:

beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestroydestroyedajax操作是在monted生命周期中完成的。
07
2020
04

vue父子组件之间的传值:

简单来说,子组件通过props方法接受父组件传来的值,子组件通过$emit方法来向父组件发送数据。(具体案例可以看我之前写的博客)。
02
2020
04

vue的优点是什么?

低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,使用Expression Blend可以很容易设计界面并生成xml代码。可测试。界面素来是比较