件相关语法
基本概念:组件的基本给概念:就是把一个大的功能,拆分成一个个子组件。组件是页面中的一部分。
全局组件
特点:全局组件只要定义,处处可以使用,性能不高,但是使用起来简单。
组件具备复用性,在一个页面里,可以使用多次。
定义方法:Vue.component('组件名',组件)
局部组件
局部组件的使用需要进行注册:例如在父组件里:components:{xxx:xxx}
PS:为了和普通变量区分,建议组件首字母进行大写。
组件传值父传子
父组件中-属性传值
子组件中-props接收
校验
校验方法:props: { content: { type: String }}
校验字符串
可校验类型
String
Number
Boolean
Array
Object
Date
Function
非空校验
required:true
默认值
default: xxx
validator方法校验
validator: function(value){ return value<1000 }
参数必须小于1000
组件传值子传父
单向数据流
子组件可以使用父组件传递过来的数据,但是绝对不能修改传递过来的数据。
this.$emit('事件','参数')方法
子组件向父组件传递方法,从而改变父组件里的变量
<div @自定义事件="handleXxx" >xxx</div>
slot插槽
概念:子组件使用 <slot></slot> 接收父组件传过来的HTML结构。
基础语法:
父组件
<myComp><div></div></myComp>
子组件
<slot></slot>
默认值
<slot>default value</slot>
具名插槽
概念:一个组件里,可以设置多个插槽,然后在父组件里可以写多个<template>来填充这些插槽
基础语法
父组件
基础写法:<template v-slot:header>
简单写法:<template #header>
子组件
<slot name="header">
作用域插槽
作用域插槽相当于插槽届的数据子传父,父组件决定子组件输出方式。
动态组件
概念:根据数据的编号,结合compoent 这个标签,来随时动态切换组件的显示
基础语法:<component :is="xxxx" />
保持状态:<keep-alive></keep-alive>
经常和动态组件一起使用