Vue篇
1.Vue中组件怎么传值
正向:父传子父组件把要传递的数据绑定在属性上,发送,子组件通过
props接收
逆向:子传父 子组件通过this.$emit(自定义事件名,要发送的数据),父组件设置一个监听事件来接收,然后拿到数据
兄弟:eventbus中央事件总线
通过Vuex
2.Bootstrap的原理
网格系统的实现原理,通过定义容器大小,平分12份,(24份或者32
份),再调整内外边距,结合媒体查询,就成了强大的响应式网格系统。
比如rowcol-xs-4
3.槽口请简述
大概分这几点,首先槽口(插槽)可以放什么内容?放在哪?什么作用?
可以放任意内容,在子组件中使用,是为了将父组件中的子组件模板数
据正常显示。
具名插槽和匿名插槽,作用域插槽,说白了就是在组件上的属性,可以
在组件元素内使用,
可以在父组件中使用slot-scope从子组件获取数据
4.Watch请简述
Watch的作用是监控一个值的变化,并调用因为变化需要执行的方法
5.VantUi请简述下
轻量、可靠的移动端Vue组件库
6.计算属性与watch区别
Computedwatch区别就是computed的缓存功能,当无关数据数据改变时,不会重新计算,直接使用缓存中的值。计算属性是用来声明式的描述一个值依赖了其他的值,当所依赖的值后者变量发生变化时,计算属性也跟着改变,Watch监听的是在data中定义的变量,当该变量变化时,会触发watch中的方法
7.mvvm框架是什么?它和其它框架(jquery)的区别是什么?哪些场景适合?
mvvm是Model-View-ModelView的缩写 mvvm就是把其中的view的状态和行为抽象化 将视图ui和业务逻辑分开来
Mvvm和其他框架的区别Mvvm是vue数据驱动通过数据来显示视图而不是节点操作
适用于数据操作比较多的场景
8.Vue首屏加载慢的原因,怎么解决的,白屏时间怎么检测,怎么解决白屏问题
首屏加载慢的原因:
第一次加载页面有很多组件数据需要渲染
解决方法:
1.路由懒加载component:()=>import(“路由地址”)
2.ui框架按需加载
3.gzip压缩
白屏时间检测:
????
解决白屏问题:
①使用v-text渲染数据
②使用{{}}语法渲染数据,但是同时使用v-cloak指令(用来保持在元素
上直到关联实例结束时候进行编译),v-cloak要放在什么位置呢,
v-cloak并不需要添加到每个标签,只要在el挂载的标签上添加就可以
9.Vue双数据绑定过程中,这边数据改变了怎么通知另一边改变
数据劫持和观察者模式
Vue数据双向绑定是通过数据劫持和观察者模式来实现的,
数据劫持,object.defineproperty它的目的是:当给属性赋值的时候
数据劫持和观察者模式
Vue数据双向绑定是通过数据劫持和观察者模式来实现的,
数据劫持,object.defineproperty它的目的是:当给属性赋值的时候,
程序可以感知到,就可以控制属性值的有效范围,可以改变其他属性的
值
观察者模式它的目的是当属性发生改变的时候,使用该数据的地方也发
生改变
10.Vuex的执行流程
在vue组件里面,通过dispatch来触发actions提交修改数据的操作,
然后通过actions的commit触发mutations来修改数据,mutations
接收到commit的请求,就会自动通过mutate来修改state,最后由
store触发每一个调用它的组件的更新