(前端百科加星,提升前端技能)
作者:前端工匠公众号/乘风破浪(本文来自作者投稿)
前言
本文主要介绍Vue的三个基本概念,属性、事件和槽,以及如何使用它们以及一些容易被忽视的重要细节。 如果你阅读别人写的组件,你可以从这三个部分开始,它们可以帮助你快速理解一个组件的所有功能。
请大家狠狠戳本文的代码,纸上谈兵,大家尽量多敲代码!
1. 属性 1. 自定义属性道具
prop定义了这个组件的可配置属性,组件的核心功能也由它决定。 编写通用组件时,最好以对象的形式编写 props,这样就可以为每个属性设置类型、默认值或自定义验证属性的值。 这在组件开发中非常重要,但是很多人都忽略了,直接使用 props 的数组用法,这样的组件往往不严谨。
// 父组件
'属性'
:类型='类型'
:是-=“假”
:on-=""
:列表=[22,33,44]
title="属性演示"
:class="['test2']"
:style="{ : '20px' }" //注意:style的优先级高于style
// 子装配体
道具: {
姓名: ,
类型: {
//从父类传入的类型,其值必须是指定的'','',''之一,如果传入这三个以外的值,会抛出警告
:(值)=> {
['', '', '']。(价值)
},
:{
//对于接收到的数据,可以是各种数据类型,也可以传一个函数
类型: ,
: () => { }
},
:{
类型: ,
: 错误的
},
列表: {
类型:数组,
// 对象或数组的默认值必须从工厂函数获取
: () => []
从上面的例子可以得出,props可以显示和定义一个或多个数据。 对于接收到的数据,可以是各种数据类型,也可以传递一个函数。
2.
这是2.4.0中的新API。 默认情况下,父作用域中不被视为 props 的属性绑定将“回退”并作为普通 HTML 属性应用于子组件的根元素。 通过设置为 false,这些默认行为将被删除。 注意:此选项不影响类和样式绑定。 上例中,如果子组件的 props 中没有声明 title 属性,那么它会默认挂在子组件的根元素上,如下图所示:
3. data和props的区别
两种选项都可以存储各种类型的数据。 当行为操作发生变化时,所有行为操作所使用的、模板渲染的数据都会同时同步变化。
数据称为动态数据。 在每种情况下,在任何情况下,我们都可以随意改变它的数据类型和数据结构,而不受任何环境的影响。
props 称为静态数据。 在每种情况下,一旦在初始化中定义了类型,它就是基于 Vue 的单向数据流。 它的数据类型在数据传输过程中不能改变,并且不允许直接操作传递的 props 数据,而需要使用其他手段来改变传输源中的数据。 至于如何改变,我们接下来详细介绍:
4. 单向数据流
这个概念出现在组件通信中。 道具