Vue2 API 速查
Global API
Vue api
Vue.extend( {} ) 用于扩展Vue的选项,生成一个新的扩展后的构造器,这样我们就可以通过创建实例来复用这个扩展后的组件
Vue.nextTick(function(){} , context) 用于在DOM异步渲染结束后执行,保证能获取到最新DOM
Vue.set(target, key, value); 用于设置响应式对象上的key
Vue.delete(target, key) 用于删除响应式对象上的key
Vue.directive(name, {}) 用于创建全局的指令,实现逻辑的复用
Vue.filter(name, function(){}) 用于创建全局的过滤器,实现数据处理
Vue.component(name, {}) 用于创建全局组件,实现组件的复用
Vue.use( { install(){} } ) 用于安装插件,增强Vue的功能
Vue.mixin({}) 用于混入组件选项,实现选项的复用
Vue.observable({}) 用于实现对象的响应式
Vue.compile("<h4>哈哈</h4>").render 用于编译模板,只在引入完整版Vue时才可用
Vue.version 返回Vue的版本
Vue.config 返回Vue的配置对象
- 加粗的是默认值,其后跟具体用法
Vue.config.async = false 是否启动Vue的异步渲染模式,能够将更新视图的任务拆分为多个小任务,分散到多个帧中执行
Vue.config.devtools = true 是否允许vue-devtools检查代码,开发默认为true,生产围殴false
Vue.config.ignoredElements = []--- ['component-name', ...] 用于指定忽略某些非Vue组件的自定义元素,否则会误认为是vue组件未注册
Vue.config.keyCodes = {}--- {键位别名,键码} 用于自定义某个键的别名,当我们在监听键盘相关事件时,使用别名作为修饰符即可
Vue.config.optionMergeStrategies.my_option = function( parent,child, vm ){} 用于处理某个自定义选项在父实例和子实例的合并策略
Vue.config.performance = false 用于设置是否在浏览器的性能工具面板对组件的初始化,编译,渲染等进行性能追踪
Vue.config.productionTip = true 用于设置是否在vue启动时生成生产提
Vue.config.silent = false 用于取消Vue的所有日志和警告
Vue.config.errorHandler = undefined--- function() {} 用于在2.6以后这个钩子会捕获组件渲染和更新,生命周期,自定义事件,监听的回调发生的错误,同时如果是Promise链,则链上的错误也会被捕获,如果这个钩子未配置,则默认使用console.error来输出错误
Vue.config.warnHandler = undefined--- function () {} 配置开发环境中vue的运行时警告的处理函数
Vm api
vm.$data 是一个普通的js对象 Vue 实例代理了对其 data 对象 property 的访问,通过读取$data获取到对原始对象的访问,但是修改$data并不会影响原始对象
vm.$props 是一个普通的js对象 Vue 实例代理了对其 props 对象 property 的访问
vm.$el 是一个DOM元素 Vue 实例挂载的根DOM元素,即当前组件template中得根元素,拿到这个根元素我们可以随意移动组件位置
vm.$options 是一个普通的js对象 Vue实例的选项对象
vm.$parent 是一个Vue实例 父实例
vm.$root 是一个Vue实例 根实例
vm.$children 是一个Vue实例 子实例
vm.$slots 是一个普通的js对象 具名插槽和默认插槽作为该对象的属性来访问
vm.$scopedSlots 是一个函数,接收slot名作为参数,返回该slot对应的渲染函数
vm.$refs 是一个普通的js对象,所有属性由注册过ref属性的组件或DOM元素的引用构成
vm.$isServer 是一个Boolean,返回Vue是否运行于服务器
vm.$attrs 是一个普通的js对象,拥有除props声明,class,style外的所有从父组件中绑定的值
vm.$listeners 是一个普通的js对象,key是事件名,value是事件监听器
vm.$watch 是一个函数,接收三个参数,表达式,回调函数,选项对象 ,是一个对watcher的简单封装,
- 通过解析表达式,读取值,触发依赖绑定,实现响应式,返回一个取消观察的函数,调用即可取消
- 选项deep,可以观察对象内部值的变化,如果是数组则不需要加deep,数组是通过拦截器实现的。选项immediate是以当前值立即执行一次回调函数
vm.$set 是一个函数,接受两个参数,对象,属性。用于给响应式对象添加属性时维持新加属性的响应式,通过definePeoperty实现
vm.$delete 是一个函数,接收两个参数,对象,属性,
vm.$on 是一个函数,接受两个参数,事件名,回调函数。
vm.$emit 是一个函数,接收两个参数,事件名,【参数】
vm.$once 是一个函数,同$on,只执行一次
vm.$off 是一个函数,接收两个参数,事件名,监听器函数
vm.$mount 是一个函数,接收一个DOM元素或者选择器作为参数,返回vm实例
vm.$nextTick 是一个函数,在实例DOM更新结束后执行回调
vm.$destroy 是一个函数,不接受参数,销毁一个实例
vm.$forceUpdat 是一个函数,不接受参数,强制更新一个实例,只会影响实例自身,传入插槽的子组件,
- 一般用于修改数组length,在定时器修改数据,数据不会影响data中数据时,使用此方法
- 或者组件的数据依赖三方库,浏览器API等,Vue可能无法检测到三方库数据的变化,就需要使用强制更新来实现
Options api
export default {
data() {
return {
}
},
props: {
},
computed: {
},
methods: {
},
watch: {
},
el: "",
template: "",
render() { },
renderError() { },
directives: {
},
filters: {
},
components: {
},
parent: Vue,
mixins: [],
extends: {
},
provide: {
},
inject: {
},
name: "",
delimiters: [],
functional: false,
model: {
prop: "",
event: ""
},
inheritAttrs: true,
comments: false,
}
LifeCycle
export default {
beforeCreate() {
},
created() {
},
beforeMount() {
},
mounted() {
},
beforeUpdate() {
},
updated() {
},
activated() {
},
deactivated() {
},
beforeDestroy() {
},
destroyed() {
},
errorCaptured() {
}
}