自定义组件
自定义组件之间不能写数据
//自定义组件
<VueList>
sdad
</VueList>
解决办法
slot插槽
接收父组件在调用子组件时,子组件中的内容。
子组件中没有使用slot,那么父组件在调用子组件时子组件中的内容,就不会被接受,也就不会显示在网页中。
组件之间的传值
父传子
<VueList data-davy = "13" v-bind:test = "12356456">
</VueList>
传递的数据可以是静态数据,亦可以是动态绑定一个动态变量
接受父组件传递的信息
接收父组件传过来的数据
父组件传过来的数据,不要直接去修改。
props中的数据可通过,this.变量名 调用,也可以使用mustarche语法使用,例如:{{变量名}}
(props中的数据和data中的数据很类似,就相当于在data中创建了一个同名变量)
props中的数据可以直接使用
props中已经接受了的变量,attrs
this.$props指向vue实例的props
this.props指向data中的props
子传父
子组件通过父组件定义了的自定义事件,让父组件修改相关数据,以改变子组件信息
父组件中的子组件上定义一个自定义组件
在子组件中使用
this.$emit(‘davy’);调用emit事件,通过emit将信息发送给父组件
传参*
子组件中调用
参数1—-父子间中,使用子组件时定义的自定义事件的事件处理函数
参数2,3,4—-传递参数
this.$emit(‘davy’,’传参’)
子组件接受的父组件的值分为——引用类型和普通类型两种,
普通类型:字符串(String)、数字(Number)、布尔值(Boolean)、空(Null)
引用类型:数组(Array)、对象(Object)
其中,普通类型是可以在子组件中更改,
不会影响其他兄弟子组件内同样调用的来自父组件的值,
但是,引用类型的值,当在子组件中修改后,父组件的也会修改,
那么后果就是,其他同样引用了改值的子组件内部的值也会跟着被修改。
除非你有特殊的要求这么去做,否则最好不要这么做。
父组件传给子组件的值,在子组件中千万不能修改,因其数据是公用的,
改了所有引用的子组件就都改了。
兄弟之间的传递数据
通过兄弟的父级组件,改变另一个兄弟组件的变量
计算属性
对原有属性的加工
将计算属性写道computed中
使用计算属性代替表达式
监听器
监听属性watch
组件的生命周期
要在父组件中查看一个子组件的生命周期函数生成的东西
要在子组件中写以下的8个生命周期函数(需要那个就用那个)
这样使用等
初始化后就能拿到数据了
接口的请求时机
接口的请求是异步的(请求的时间不确定),解决
1.默认值
2.loading
数据没有加载完就使用默认的数据(loading隐藏),加载完成后就使用loading中的数据(loading显示)
created(){}