?高阶函数的英文名称是:HigherOrderfunction。一个函数可以接收一个或多个函数作为输入,或者输出一个函数,至少满足上述条件之一的函数称为高阶函数。前言本文内容知识点较多,讲解不够详细。不熟悉的可以看之前的文章,每个知识点都有专门的详细文章。建议读者收藏!1、mixinmixinmixin提供了一种非常灵活的方式来在vue组件中分发可重用的功能。混合对象可以包含任何组件选项。当一个组件使用一个mixin对象时,所有mixins对象的选项都会被混合到组件自身的选项中。mixins是一个数组,一个组件可以引入多个mixin对象。用法如:mixin的使用主要针对option-styleAPI,在vue3中使用相对较少。使用时注意事项:当使用mixin对象时,组件包含与mixin相同的选项,会被合并,不会被覆盖。当使用的mixin对象options与实例中的options具有相同的属性时,会选择就近原则,优先继承实例中的值,因此mixin对象的属性会被instance中的属性覆盖实例。mixin对象还可以添加生命周期钩子函数,这两个函数都会执行,先执行mixin中的,再执行实例中的。Mixin还可以自定义属性。如果与实例中的属性冲突,可以使用optionMergeStrategies选项来合并策略,自定义合并规则。2.用户自定义指令用户自定义指令分为全局用户自定义指令和局部用户自定义指令。2.1.自定义指令的定义全局自定义指令在vue3中,vue实例是通过createApp创建的,所以全局自定义指令的挂载方式也发生了变化,将指令挂载到app上。app.directive('focus',{mounted(el){el.focus()}})本地自定义指令constautoFocus={focus:{mounted(el){el.focus()}}}exportdefault{directives:autoFocus,自定义命令v-xxx可以直接使用,上面例子对应的自定义命令是v-focus。2.2.自定义指令钩子函数参数每个钩子中参数的含义:mounted(el,binding,vnode){...}el:表示当前使用指令的元素binding:指令传递的值vnode:当前元素节点related2.31.自定义指令钩子函数指令定义对象可以提供以下几个钩子函数(都是可选的,根据需要引入)created:在应用绑定元素属性或事件监听器之前调用。当指令需要附加需要在普通v-on事件侦听器之前调用的事件侦听器时,这很有用。beforeMounted:当指令首次绑定到元素时且在挂载父组件之前执行。mounted:绑定元素的父组件挂载后调用。beforeUpdate:在更新包含组件的VNode之前调用。updated:在包含组件的VNode及其子组件的VNode更新后调用。beforeUnmounted:在卸载绑定元素的父组件之前调用unmounted:仅在指令与元素解除绑定并且卸载父组件时调用一次。2.4.自定义命令参数自定义命令也可以有参数,参数可以是动态的,参数可以根据组件实例数据实时更新。使用方法如下:
