国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

輕量級前端組件實現(885byte with gzip)

浠ラ箍 / 2223人閱讀

摘要:可以包括,或者其他的賦值語句或者邏輯代碼這里有一個已知的需要注意的點不要在模板中使用單引號,如果必須要使用,請使用轉義字符用法創建一個模板對象將模板字符串編譯成函數編譯之后的模板使用不同的變量進行渲染,渲染的時候需要使用接收輸出示例

tplite

一個基于輕量級模板庫實現的前端組建庫

可以像react一樣在前端使用組件的方式構建應用
基于一個只有415字節的模板庫實現(基于字符串模式)
只暴露幾個簡單的接口render, mount, setState, trigger.
在渲染的時候,使用閉包將需要的事件或者方法綁定到對應的DOM元素上面

項目地址 https://github.com/lloydzhou/...
完整的todo mvc示例 https://lloydzhou.github.io/t...

使用組件
  
  

{{title}}

{{ encodeURIComponent(title)}} {% if (messages && messages.length > 0) { %} {% messages.forEach(function(message, index){ %}

{{sub(messageTmpl, messageMethods, {message: message, index: index})}}

{% })%} {% } %}

使用模板,初始化的initState以及需要綁定或者操作的方法以及root節點初始化組件:

var root = document.getElementById("root")
  , tmpl = document.getElementById("tpl").innerHTML
  , initState = {title: "Demo for mocro javascript template!", messages: ["test demo 1", "test demo2"]};

var app = new tplite.Component(root, tmpl, initState, {
  view: function(message){
    alert(message)
  },
  add: function(message){
    var  messages = this.state.messages;
    messages.push("test demo" + (messages.length + 1))
    this.setState({ messages, messages })
  },
  remove: function(index){
    var  messages = this.state.messages;
    messages.splice(index, 1)
    this.setState({ messages, messages })
  },
  onUpdate: function(){
    // will trigger when component render
    console.log("update", this.state)
  }
})
完整的例子

please see result in "component.html"

模板語法

簡單來說,這個模板只提供兩種語法:

{{ value }} 將中間的value當成字符串輸出

{% statement %} 將中間的當成js語句執行。(可以包括,if/for或者其他的賦值語句或者邏輯代碼)

Issue

這里有一個已知的需要注意的點:
不要在模板中使用單引號,如果必須要使用,請使用轉義字符 

用法

創建一個模板對象

var template = new tplite.Template()

將模板字符串編譯成函數

var compile = template("

{{title}}

")

編譯之后的模板使用不同的變量進行渲染,渲染的時候需要使用callback接收輸出

var stringbuffer = new tplite.StringBuffer()
compile({title: "Title !!!"}, stringbuffer)
console.log(stringbuffer.toString())

// render template and write to document
compile({title: "Title !!!"}, function(s){document.write(s);})
示例

please see result in "index.html"

LICENSE

Copyright 2014-2017 @Lloyd Zhou

Released under the MIT and GPL (version 2 or later) Licenses.

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/91837.html

相關文章

  • 「Vue實踐」武裝你的前端項目

    摘要:所有的高階抽象組件是通過定義選項來聲明的。所以一般在生命周期或者中,需要用實例的方法清除可當你有多個時,就需要重復性勞動銷毀這件事兒。更多的配置請看雙端開啟開啟壓縮的好處是什么可以減小文件體積,傳輸速度更快。本文目錄 接口模塊處理 Vue組件動態注冊 頁面性能調試:Hiper Vue高階組件封裝 性能優化:eventBus封裝 webpack插件:真香 本文項目基于Vue-Cli3,想知...

    曹金海 評論0 收藏0
  • #yyds干活盤點#Nginx服務器的安裝以及配置

    摘要:介紹是一個高性能的和反向代理服務器,同時也提供了服務。其將源代碼以類許可證的形式發布,因它的穩定性豐富的功能集簡單的配置文件和低系統資源的消耗而聞名。是一款輕量級的服務器反向代理服務器及電子郵件代理服務器,在協議下發行。 Nginx介紹?Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也...

    番茄西紅柿 評論0 收藏2637
  • Java Web 前端高性能優化(二)

    摘要:在高性能服務器上該配置將非常有用。小結前端高性能優化一二總結了前端性能問題定位以及圖片優化的幾種方式,將它們歸結起來,在讀者需要的時候,可以查看本文的內容,相信按照本文的方法,可以輔助讀者進行前端性能優化。 一.上文回顧 上回我們主要從圖片的合并、壓縮等方面介紹前端性能優化問題(詳見Java Web 前端高性能優化(一)) 本次我們主要從圖像BASE64 編碼、GZIP壓縮、懶加載與預...

    yvonne 評論0 收藏0
  • nginx 在前端領域的應用

    摘要:什么是其實就是一個輕量級的服務器,可以很好的處理反向代理和負載均衡可以很好的處理靜態資源所以很適合我們前端使用,也很簡單。也是阿里系的常用做法適配與移動通過判斷,做跳轉到的路徑和的路徑查看端口是否被占用 什么是nginx ? 其實就是一個輕量級的服務器,可以很好的處理反向代理和負載均衡;可以很好的處理靜態資源;所以很適合我們前端使用,也很簡單。我們主要用來做接口轉發(以及一些其他事情)...

    魏明 評論0 收藏0
  • nginx服務器安裝及配置文件詳解

    摘要:部分設置的指令將影響其它所有部分的設置部分的指令主要用于指定虛擬主機域名和端口的指令用于設置一系列的后端服務器,設置反向代理及后端服務器的負載均衡部分用于匹配網頁位置比如,根目錄等等。 nginx在工作中已經有好幾個環境在使用了,每次都是重新去網上扒博客,各種編譯配置,今天自己也整理一份安裝文檔和nginx.conf配置選項的說明,留作以后參考。像負載均衡配置(包括健康檢查)、緩存(包...

    mylxsw 評論0 收藏0

發表評論

0條評論

浠ラ箍

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<