vue经常使用知识总结 vue详情解析 vue面试总结

vue-loader是什么?用途有哪些?css

是解析vue文件的一个加载器,用途是js能够写es6,style样式能够scss或less,template能够加jadevue

active-class是那个组件属性?node

Vue-router模块的router-link组件,设置激活时样式webpack

css只在当前组件库中起做用:<style scoped>ios

keep-alive包括动态组件,避免从新渲染,保留组件状态es6

缓存:  <keep-alive include=”组件名”></keep-alive>web

不缓存:<keep-alive exclude=”组件名”></keep-alive>json

使用:复杂项目时axios

路由字典中定义{path:’/detail’,meta:{keepAlive:false/true}} 是否缓存promise

根目录中:

<keep-alive><router-view v-if=”$route.meta.keepAlive”></router-view></keep-alive>

<keep-alive><router-view v-if=” ! $route.meta.keepAlive”></router-view></keep-alive>

VUE如何自定义属性

全局自定义:

Vue.directive(‘focus’,{

         Inserted:function(el){

                   el.focus()  //聚焦函数

}       

})

二十四:VNode是什么?虚拟DOM是什么?

Vue在页面上渲染的节点,及其子节点称为虚拟节点,简称VNode;虚拟DOM时由组件树创建起来的整个VNode树的称呼

二十五:scss是什么?有哪些特性?怎么使用?

是css的预编译,特新有能够用变量($变量名=值),能够用混合器(),能够嵌套,能够继承,能够运算,安装先装css-loader,node-loader,sass-loader,在webpack.base配置,style标签上加lang=”scss”

二十五:Vue router如何实现跳转

<router-link></router-link>   router.push(‘/’)      router.go(0)

二十六:vue router跳转和location.href有什么区别?

Router是hash改变;location.href是页面跳转,刷新页面

 

一、vue是渐进式轻量级的框架。

二、vue的两个核心是什么?数据驱动和组件化

三、v-if与v-show的区别?

都是判断dom节点的显示或隐藏,v-show是css的display:none,适合作频繁的切换。

v-if是内部组件的重建和销毁的过程

四、vue的经常使用修饰符

a、按键修饰符(.delete)@keyup.delete="onKey"

b、系统修饰符(enter,ctrl,alt,shift.mate)鼠标按钮修饰符(.left,right ,middle)

.lazy       input输入完成时的修饰符  <input v-model.lazy="msg" >

.number     若是想自动将用户的输入值转为数值类型  <input v-model.number="age" type="number">

.trim     过滤空白字符串     <input v-model.trim="msg">

五、vue中key的做用

dom每一个节点的惟一标识符,为了高效的更新虚拟dom,vue中在使用相同标签名元素的过渡切换时

六、在vue中的data为何必须是函数?

在vm=new Vue()的时候data能够是对象进行操做,可是在component中data必须的函数当data选项是一个函数的时候,每一个实例能够维护一份被返回对象的独立的拷贝,这样各个实例中的data不会相互影响,是独立的

七、v-for的优先级比v-if要高。。。

八、vue中子组件调用父组件的方法?

a、this.$parent.fatherMethod()经过this.$parent.event直接调用

b、this.$emit('fatherMethod'); <child @fatherMethod="fatherMethod"></child>子组件经过this.$emit('father')向父组件触发一个事件

c、<child :fatherMethod="fatherMethod"></child> props: {  fatherMethod: { type: Function,default: null}}, methods: {childMethod() { if (this.fatherMethod)this.fatherMethod(); }}}父组件把方法传给子组件,子组件props接受function后调用这个方法

九、vue的生命周期,八个阶段:建立前/后、载入前/后、更新前/后、销毁前/后。

beforeCreate:这个阶段的$el和data都是undefined

created:这个阶段vue有了data,可是仍是没有$el

beforeMount:这个阶段$el和data都初始化了,可是为虚拟DOM,data.message尚未被替换

mounted  vue实例挂载完成data.message成功渲染

beforeUpdate和updated,在data变化的时候会触发这两个的方法

在执行destroyed的方法后,对data改变不会再触发周期函数,说明了此时的vue实例已经解除了事件的监听和dom的绑定

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

会触发beforeCreate , created ,beforeMount ,mounted

路由钩子

全局路由钩子:

Router.beforeEach((to,from,next)=>{... next()})

注意:必定要调用next(),不然页面卡在那,通常用于对路由跳转前进行拦截,参数:

To:即将要进入的目标路由对象    From:当前导航正要离开的路由

Next():跳转下一个页面      next(‘/path’):跳转指定路由

Next(false):返回原来页面  next((vm)=>{}):且在beforeRouterEnter用

好比根据登陆状态跳转页面判断(to.name->name是路由名)

Router.beforeEach(function(to,from,next){if(to.name==’login’){..}next();})

Router.afterEach((to,from)=>{}) 跳转后调用没有next方法

组件路有钩子:

beforeRouteEnter(to,from,next){next(vm=>{...})} 路由跳转时

注意:此钩子在beforeCreate以前执行,可是next在组件mounted周期以后,没法直接调用this访问组件实例,可用next访问vm实例,修改数据;

beforeRouteLeave(to,from,next){...next()} 离开路由时

注意:能够直接访问this,next不可回调

beforeRouteUpdate 路由切换时

十、vue的4中指令以及用法,v-if条件渲染v-for遍历数据v-bind绑定属性v-model实现双向数据绑定

十一、vue的双向数据绑定原理是什么?

<input v-model="sth">

==至关于经过oninput(用户输入时触发)把表单值给到变量

<input v-bind:value="sth" v-on:input="sth=$event.target.value">

 

由于vue是经过Object.defineProperty()来实现数据劫持的。

经过get和set实现双向数据绑定的。。

 

MVVM,ViewModel经过双向绑定把View和Model进行同步交互,不须要手动操做DOM的一种设计思想。

MVVM和MVC区别?MVVM和MVC都是一种设计思想,主要就是MVC中的Controller演变成ViewModel,,MVVM主要经过数据来显示视图层而不是操做节点,解决了MVC中大量的DOM操做使页面渲染性能下降,加载速度慢,影响用户体验问题。

组件之间传值

父向子传值:属性传值,父组件经过给子组件标签上定义属性,子组件经过props方法接收数据;

子向父传值:事件传值,子组件经过$emit(‘自定义事件名’,值),父组件经过子组件上的@自定义事件名=“函数”接收

非父子组件传值:全局定义bus,var bus=new Vue() ; 发送者, bus.$emit(‘自定义名’,值) ;接受者,bus.$on(‘自定义名’,(值)=>{})

路由之间传参

路由字典中:routes={path:’/detail/:id’,component:Detail}

标签中:<router-link :to=”‘/detail/’+item.id ”>

Js中:this.$route.params.id

五:axios的特色和使用

特色:基于promise的Http库,支持promise的全部API,用来请求和响应数据的,并且对响应回来的数据自动转化为json类型,安全性较高,客户端支持防护XRSF(跨站请求伪造),默认不携带cookie;

使用:下载包后引入 import axios from ‘axios’ , 让其携带cookie ,axios.defaults.withCredentials=true, 而后添加到prototype中,Vue.prototype.$axios=axios ,组建中不用引入直接使用this.$axios.get(url,{params:{id:1}})。

六:Vuex是什么?怎么使用?用于哪些场景?

Vuex是框架中状态管理;新建目录store...export,而后main.js引入store再注入到vue实例中;用于购物车,登陆状态,单页应用等。

七:Vuex有哪几种属性?

五种:state,action,mutation,getter,module

State:数据源存放地,数据是响应式的

Action: 逻辑处理,提交的是mutation,包含任意异步操做

Mutation: 修改state里的公共数据

Getter: 至关于计算属性,能够复用,可缓存

Module: 模块化

八:Vuex取值

This.$store.state.city

This.$store.commit(‘getData’)

this.$store.dispath(‘getData’)

This.$store.getters.getData

相关文章
相关标签/搜索