写在前面

Omi框架可以通过在组件上声明 data-* 把属性传递给子节点。
Omi从设计之初,就是往标准的DOM标签的标准传递方式靠齐。比如:
这样会有什么局限性和问题?如:
那么支持传递javascript表达式就能解决这些痛点。
废话不多说,来看神器的冒号。
冒号标记
看下面例子:
import Hello from 'hello.js'
Omi.makeHTML('Hello', Hello);
class App extends Omi.Component {
render() {
return `
<div>
<Hello :data-user="{ name : 'Dntzhang', favorite : 'Omi' }" />
</div>
`
}
}
Omi.render(new App(),"#container")
在data-user前面加上冒号即:data-user,就代表传递的是js 表达式,够方便吧。
然后在Hello组件内就可以直接使用。
class Hello extends Omi.Component {
render() {
return `
<div>
<h1>{{user.name}} love {{user.favorite}}.</h1>
</div>
`
}
}
你也可以在hello组件内打印出 this.data.user 试试。
传递其他类型
上面的例子展示了传递JSON,其他类型也支持。比如:
<Hello :data-age="18" /> <Hello :data-xxx="1+1*2/3" /> <Hello :data-is-girl="false" /> <Hello :data-array-test="[1,2,3]" />
复杂类型
最后给大家看个稍微一丁点复杂的案例:
class Hello extends Omi.Component {
handleClick(evt){
alert( this.data.arrayTest[0].name)
}
render() {
return `
<ul>
{{#arrayTest}}
<li onclick="handleClick">{{name}}</li>
{{/arrayTest}}
</ul>
`;
}
}
Omi.makeHTML('Hello', Hello);
class App extends Omi.Component {
render() {
return `
<div>
<Hello :data-array-test="[{name:'dntzhang'},{name:'omi'},{name:'AlloyTeam'}]" />
</div>
`;
}
}
Omi.render(new App(),"#container");
当然,在子组件中,你也可以不使用 mustache.js模板引擎的语法去遍历,使用ES6+的姿势去遍历。
class Hello extends Omi.Component {
render() {
return `
<ul>
${this.data.arrayTest.map(item =>
`<li>${item.name}</li>`
).join('')}
</ul>
`;
}
}
这也是为什么omi提供了两个版本,omi.js和omi.lite.js的原因。omi.lite.js不包含mustache.js模板引擎。
以上所述是小编给大家介绍的Omi v1.0.2发布正式支持传递javascript表达式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# Omi
# v1.0.2发布
# javascript
# 表达式
# javascript 手机号码正则表达式验证函数
# 比较正宗的验证邮箱的正则表达式js代码详解
# js 常用正则表达式表单验证代码
# 精通JS正则表达式(推荐)
# js各种验证文本框输入格式(正则表达式)
# 遍历
# 给大家
# 你也可以
# 小编
# 的是
# 就能
# 在此
# 下划线
# 可以通过
# 可以直接
# 多说
# 之初
# 所述
# 给我留言
# 感谢大家
# 会有什么
# 看个
# 不包含
# 内就
# 疑问请
相关文章:
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
建站之星后台密码遗忘如何找回?
开心动漫网站制作软件下载,十分开心动画为何停播?
如何在搬瓦工VPS快速搭建网站?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
如何快速生成可下载的建站源码工具?
网站制作员失业,怎样查看自己网站的注册者?
如何选择高效可靠的多用户建站源码资源?
如何在云虚拟主机上快速搭建个人网站?
定制建站策划方案_专业建站与网站建设方案一站式指南
建站之星安装需要哪些步骤及注意事项?
如何配置WinSCP新建站点的密钥验证步骤?
TestNG的testng.xml配置文件怎么写
建站主机数据库如何配置才能提升网站性能?
盐城做公司网站,江苏电子版退休证办理流程?
北京网站制作的公司有哪些,北京白云观官方网站?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
PHP 500报错的快速解决方法
制作网站的模板软件,网站怎么建设?
公司网站制作价格怎么算,公司办个官网需要多少钱?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
建站之星如何一键生成手机站?
建站主机解析:虚拟主机配置与服务器选择指南
如何解决VPS建站LNMP环境配置常见问题?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
小建面朝正北,A点实际方位是否存在偏差?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
建站三合一如何选?哪家性价比更高?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
,在苏州找工作,上哪个网站比较好?
建站之星如何快速更换网站模板?
建站主机是什么?如何选择适合的建站主机?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
制作网站的基本流程,设计网站的软件是什么?
制作网站的软件免费下载,免费制作app哪个平台好?
在线教育网站制作平台,山西立德教育官网?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
如何用腾讯建站主机快速创建免费网站?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
建站之星在线版空间:自助建站+智能模板一键生成方案
c# 服务器GC和工作站GC的区别和设置
公司网站的制作公司,企业网站制作基本流程有哪些?
建站之星后台密码如何安全设置与找回?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
企业微网站怎么做,公司网站和公众号有什么区别?
高防服务器:AI智能防御DDoS攻击与数据安全保障
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
*请认真填写需求信息,我们会在24小时内与您取得联系。