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