2021.7.17 Vue复习---自定义指令,生命周期,非单文件组件,单文件组件,脚手架

257 阅读3分钟

自定义指令

我们可以自己创造一个指令:v-xxx的形式,通过directives:'xxx'(element,binding){}来定义指令,其中element指的是我们调用指令时传入的参数,binding指的是绑定的对象。

刚刚给出的是简写形式,完整写法应为:

directives:{
                fbind:{
                    //指令与元素成功绑定时
                    bind(element,binding){
                        element.value = binding.value;
                    },
                    //指令所在元素被插入页面时
                    inserted(element,binding){
                        element.focus()
                    },
                    //指令所在的模板被重新解析时
                    update(element,binding){
                        element.value = binding.value;
                    }
                }
            }

简写形式中其实只有bind和update函数,因此如果我们用简写形式,那么该指令将会在一下时候被调用:

1.指令与元素成功绑定时(即一上来xxx)。

2.指令所在模板被重新解析时,即数据有更新时。

生命周期

(我们平时也会把它叫做生命周期钩子)

即在某些特殊的时间点,Vue会为我们调用的函数。

我们比较常用的生命周期钩子有mounted和beforeDestroy,当我们想要实现"一上来xxx"的功能时,可以把函数语句写在mounted钩子里。当我们想要停止页面维护,做一些收尾工作时,可以把函数语句写在beforeDestroy中,比如停止定时器。

beforeCreate和created中间发生了什么?

中间是数据监测和数据代理过程,因此如果我们在beforeCreate中更改数据,是没有用处的,因为数据监测和数据代理还未开始。

非单文件组件

vm对象是由Vue构造函数构造的,组件对象是由VueComponent构造函数构造的。

有一个很重要的内置关系式:VueComponent.prototype.__proto__ == Vue.prototype

也就是说,组件实例对象也可以访问Vue原型上的所有属性和方法。

单文件组件

单独的vue文件中配置<template><template/><script></script><style></style>,可以分别写入组件的代码结构,样式,数据交互。

每一个组件都要写暴露export default,在父组件中要进行import引入。(这部分好像是ES6模块化的知识,要记得补一下)

在父组件中使用子组件步骤:引入,注册,创建标签使用。

ref属性

可以使用ref属性来获取DOM元素,语法为this.$ref.xxx,通过这个就可以访问DOM元素。

props

我们可以使用props将数据从父组件传到子组件中。子组件使用props选项进行数据接收。

简单接收:props:['name','address','age']

接收的同时进行类型限制:

props:{
        name:String,
        age:Number,
        address:String
    }

接收同时对数据进行类型限制+默认值指定+必要性限制

props:{
        name:{
            type:String,
            required:true
        },
        age:{
            type:Number,
            default:99 //默认值
        },
        address:{
            type:String,
            required:true
        }
    } 

mixin混合

我们可以把不同组件中相同的部分写成一个mixin文件,写时通过export暴露,在组件中import引入,并使用mixins选项进行注册后使用。

plugins插件

我们可以使用plugins自定义功能,可以用于给Vue的原型对象添加功能,全局可用。

创建plugins的js文件时,注意要暴露一个install方法,传入的参数是Vue构造函数。在main.js中,用import引入插件,Vue.use(plugins)来使用。