1.Vue,react,jq对比
vue 是一个以数据驱动视图的渐进式 mvvm 模式框架,双向数据绑定
react专注视图层的响应式框架,单项数据绑定
jq操作dom类库的
2.vue指令?v-if v-show ;v-html v-text区别
v-for,v-model,v-bind,v-on, v-once;
v-if控制的是元素的加载与销毁,v-show控制元素的display样式;
v-html可以渲染dom片段,v-text只能渲染文本
3.vue组件通信
1.父传子:父组件用v-bind绑定自定义属性将数据传给子组件件,子组件props接收
2.子传父:父组件用v-on绑定自定义事件将函数传递给子组件,子组件$emit接收
3.父子通信:v-model,在子组件里注入一个 value 值和 input 事件函数;
(value 在 props 获取,input 函数使用$emit 触发,好处是很简洁,坏处是不容易维护,尤其是容易和其他名字冲突)
4..sync
修饰符,对属性进行假的数据双向绑定,让子组件在不调用父组件传递过来的函数的情况下修改父组件传递过来的属性值
5.跨级:vuex
6.其他:父子/provide/inject 兄弟bus
4.什么是高阶组件
高阶组件就是一个函数,传给他一个组件,返回一个新的组件,新组件使用传入的组件作为子组件,主要用于代码复用
5.为什么组件中的data必须是一个函数,然后return一个对象
Data是一个函数时,每个组件实例都有自己的作用域,每个实例相互独立,不相互影响
Object是引用数据类型,如果不用function返回,每个组件的data都是内存的同一个地址,一个数据改变其他的也会改变
6.vue2.x的双向绑定原理
API是通过object.defineProperty()来劫持各个属性的setter和getter,在数据变动时发消息给订阅者,触发相应的监听回调。
7.Vue内置组件
动态加载组价
组件缓存
Slot 作为插槽,能让我们在组件标签内填充内容
Template 模板
Transition 为组件载入和切换提供动画效果
8.vue生命周期
创建阶段:beforeCreat和created
挂载阶段:beforeMount和mounted (请求接口)
更新阶段:beforeUpdate和updated
销毁阶段:beforeDestory(清除全局变量,定时器)和destoryed
9.修饰符
事件修饰符:.once 让事件只执行一次 ; stop:禁止冒泡; prevent:阻止默认事件; native:绑定原生事件
按键修饰符:.13 enter 监听回车 ; left,right鼠标左右点击;
指令修饰符:v-model:.number
将值转为数字
属性修饰符:.sync 让子组件直接使用$emit修改父组件传过来的值
10.计算属性和监听器
Computed:对数据或属性进行监听操作,但是不能修改,对操作后的数据进行返回,得到一个新值; 不受数据类型影响。
Watch:只是对数据或值进行监听,没有返回值,对引用数据类型要开启深度监听,受数据类型影响
11.computed是一个对象时,有哪些选项?Computed和methods区别?Watch是一个对象时,有哪些选项?
有set和get两个选项;
methods是一个方法可以接收参数,computed不能,computed是可以缓存的;
watch配置:handler deep im