91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Omi v1.0.2如何傳遞javascript表達式

發布時間:2021-08-25 13:52:03 來源:億速云 閱讀:135 作者:小新 欄目:web開發

這篇文章主要介紹了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表達式”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

垫江县| 星子县| 灌南县| 六枝特区| 长海县| 河池市| 于都县| 磐石市| 财经| 麦盖提县| 黔江区| 通化县| 石泉县| 兴城市| 裕民县| 舒兰市| 兴海县| 界首市| 京山县| 西和县| 离岛区| 宝清县| 甘孜县| 江门市| 澄迈县| 禄劝| 平乡县| 泰兴市| 平阴县| 萍乡市| 扎赉特旗| 来安县| 延吉市| 左云县| 文安县| 米脂县| 望城县| 海城市| 亚东县| 明光市| 那坡县|