| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [View Raw Code] [Original HTTPS Page] |
插值是Regular最常用特性,包括
他们语法都是类似,即{Expression},{}也称为表达式容器。
参考
其他场景也可以使用表达式,具体参考表达式使用场景
##文本插值 {#text}
针对文本插值,Regular 会创建一个 textNode, 并建立表达式到textContent的 单向数据绑定
Example
const app = new Regular({
template: "<div>{username}</div>",
data: {username: 'leeluolee'}
});
app.$inject('#app');
上面的例子会输出<div>leeluolee</div>,并且一旦数据发生改变,文本节点内容也会发生改变
由于是单向绑定,你直接修改textContent是无法反向映射到数据的,而且会导致单向绑定失效
举例: <div title={blog.title} >haha</div>
针对属性插值,Regular 会创建一个对应名称的属性节点,并创建表达式到 属性值 的单向绑定。
几个注意点
如果文本内部具有插值符号{}, Regular 会解释成组合表达式,如'.modal-{klass} z-{state}' 就相当于是 '.modal-' + klass + 'z-' + state。
对于非指令类的的属性, Regular 会在值变化时, 修改对应属性, 即一般属性(class, style,title等)是天生可插值的。
对于指令类的属性, Regular 会将具体处理逻辑交由指令处理。
由于是单向绑定,你通过 DOM API 修改属性值是无法反向映射到数据的,而且会导致单向绑定失效
Example
<input
type='number'
class={klass}
r-model={value}
style="left: {value}px"
> 上述几个属性结果如下
{%raw%} FAQ
{%endraw%}
通过参数插值传入组件数据,并创建外层组件字段(如上例 blog.title )到内部组件字段(如上例 title)的 双向绑定
注意如果表达式不是setable的(如 title={blog.title + ':' + blog.subTitle}), 将只会创建外层组件到内层组件的 单向绑定
关于参数插值,请直接看组件章节
Regular还支持一种模板片段的插值,称为,它与组件结构的复用能力直接相关,如
<Card title={~ <Icon type='user' /> 我是标题 } >
<Icon type='user' /> 我是内容区
</Card>更多解读请直接参考组合 - 结构复用
| Back | FazBrowse Home | New Git URL |