组件模版指的是以.gen
为后缀名的文件中由<template>
标签包裹的用来描述页面结构的部分。
$component_name
: 组件名称$static_prop
: 静态属性$prop_value
: 属性值$bind_prop
: 绑定属性$bind_ident
: 绑定变量标识符$callback
: 回调$callback_ident
: 回调方法标识符$arg
: 参数$()*
: many1,1个或多个$()?
: recognize,0个或1个
在语法规则部分我们会详细讲述组件模版的编写规则
根组件指的是每个.gen
文件中组件模版部分的根组件,即<template>
标签包裹的首个标签
在这个例子中根组件就是<view id="UiRoot"></view>
任何组件模版有且只有一个唯一的根组件,且根组件必须有一个唯一名称
您可能发现了静态和动态使用的唯一命名属性是不同的,静态使用id
动态使用name
Hello
时,在其他组件中使用<Hello></Hello>
表示该组件snake name rule
进行根组件的命名,例如: my_view1
,但在其他组件中引入时依然会转为camel name rule
,即:<MyView1></MyView1>
对于根组件,默认继承view
视图组件,不可更改,我们希望每个被封装的组件都可以作为独立的单个视图出现。
上方对于根组件id
和name
的说明我们称为对内原则和对外原则,id
对内,name
对外,意思是:
id
仅对当前被封装的组件内部起效,外部无法通过内部的id
获取内部组件name
仅对外有效,是外部使用被封装组件的途径,对内无法用name
对组件进行获取,且name
只存在于<component>
中静态属性的写法为:$static_prop="$prop_value"
,多个属性由空格
分割,例如:
组件的属性值是有类型的,错误类型无法编译通过
属性值的类型请参考: 数据类型
id
是组件的唯一标识,每个组件都有这个属性,通过id
可以获取到对应的组件,同时它也是组件的属性标识
如果您无法理解,请先阅读内外原则
class
是组件的属性(样式)标识,通过class
可以将样式(<style>
)部分对于的样式合并到组件中
class
没有唯一性class
,但不能声明多个class
as_prop
属性组件as_prop
属性会把某个组件转为其父组件的属性,源自于Makepad
中构建插槽的一种方式
目前仅在button
和view
组件中涉及
对于需要绑定的属性使用:
作为属性的前缀,属性值为Bind::Ident
类型,写法如下:
请注意,若组件进行了数据绑定一定要添加id
作为标识符
回调表示组件激发某个事件之后调用的某个方法,使用@
作为回调前缀,写法如下:
回调中可能没有任何参数,但依然需要添加()
若组件使用了回调一定要添加id
作为标识符