我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Omi v1.0.2如何传递javascript表达式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Omi v1.0.2如何传递javascript表达式

这篇文章主要介绍了Omi v1.0.2如何传递javascript表达式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Omi框架可以通过在组件上声明 data-* 把属性传递给子节点。

Omi从设计之初,就是往标准的DOM标签的标准传递方式靠齐。比如:

  • 下划线自动转驼峰, data-page-index传到子组件就变成this.data.pageIndex

  • data-xx 传递到子节点全都变成字符串,如data-page-index="1"到子节点中this.data.pageIndex就是字符串"1"

这样会有什么局限性和问题?如:

  • 无法传递JSON

  • 无法传递number类型

  • 无法传递bool类型

那么支持传递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>
 <h2>{{user.name}} love {{user.favorite}}.</h2>
 </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表达式”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Omi v1.0.2如何传递javascript表达式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何使用Lambda表达式编写递归

这篇文章主要介绍“如何使用Lambda表达式编写递归”,在日常操作中,相信很多人在如何使用Lambda表达式编写递归问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Lambda表达式编写递归”的疑惑有所
2023-06-17

JavaScript如何使用正则表达式

正则表达式是一种用来匹配字符串的模式,可以用于验证、搜索、替换字符串等。JavaScript内置支持正则表达式,本篇文章将介绍JavaScript如何使用正则表达式。正则表达式比较复杂,如果您初次接触它,可能会感到困惑。但是只要您理解了基本语法和常见功能,就可以使用它来解决复杂的字符串匹配和替换问题。一、正则表达式的基本语法正则表达式由一系列字符和元字符组成,元字符用于指定匹配
2023-05-14

如何理解JavaScript正则表达式

如何理解JavaScript正则表达式,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、正则表达式创建1.var reg = /test/;2.var reg = new Re
2023-06-02

JavaScript如何简化条件表达式

这篇文章将为大家详细讲解有关JavaScript如何简化条件表达式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。简化条件表达式经常碰到这种情况,要判断某个变量是否为指定的某些值,用常规的逻辑表达式会很长。
2023-06-27

如何使用Lambda表达式编写递归函数

这篇文章主要介绍“如何使用Lambda表达式编写递归函数”,在日常操作中,相信很多人在如何使用Lambda表达式编写递归函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Lambda表达式编写递归函数
2023-06-17

C#如何实现递归调用的Lambda表达式

这篇文章主要讲解了“C#如何实现递归调用的Lambda表达式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#如何实现递归调用的Lambda表达式”吧!首先给一个简单的示例: int
2023-07-02

JavaScript如何立即调用函数表达式

小编给大家分享一下JavaScript如何立即调用函数表达式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!立即调用函数一、了解立即调用函数表达式1.1 思维导图1
2023-06-14

JavaScript高级正则表达式如何理解

这篇文章将为大家详细讲解有关JavaScript高级正则表达式如何理解,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。JavaScript高级正则表达式1.正则表达式概述1.1什么是正则表达式
2023-06-26

C++ 函数中的 lambda 表达式如何通过参数传递捕获外部变量?

c++++ lambda 表达式可以通过参数传递来捕获外部变量,具体步骤如下:定义一个接受 lambda 表达式作为参数的函数。在 lambda 表达式中捕获外部变量。将 lambda 表达式作为参数传递给该函数。在函数中调用 lambda
C++ 函数中的 lambda 表达式如何通过参数传递捕获外部变量?
2024-04-25

lambda表达式与传统接口函数如何实现

这篇文章主要讲解了“lambda表达式与传统接口函数如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“lambda表达式与传统接口函数如何实现”吧!一、接口定义首先,我们要明白lambd
2023-06-29

JavaScript中如何利用正则表达式检测小数

小编给大家分享一下JavaScript中如何利用正则表达式检测小数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!利用正则表达式,语法“var rep=/[\.]/
2023-06-03

JavaScript如何从箭头函数返回对象/表达式

小编给大家分享一下JavaScript如何从箭头函数返回对象/表达式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!从箭头函数返回对象/表达式const getSt
2023-06-27

JavaScript如何利用正则表达式来禁止键盘输入数字

这篇文章主要介绍“JavaScript如何利用正则表达式来禁止键盘输入数字”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript如何利用正则表达式来禁止键盘输入数字”文章能帮助大家解决问
2023-06-30

好程序员分享使用JavaScript正则表达式如何去掉双引号

  好程序员分享使用JavaScript正则表达式如何去掉双引号最近接了一个项目,项目需求需要用js正则表达式过滤掉页面文本域中值得双引号,其实解决办法很简单,下面把我写的代码分享给大家,有同样需求的朋友可以参考下。   具体的解决代码如下
2023-06-03

编程热搜

目录