基於 react 後端渲染模板引擎 noox 釋出了

hellosean發表於2018-01-10

React 元件化思想受到越來越多開發者的關注,元件化思想幫助開發者將頁面解耦成一個一個元件,程式碼更加模組化, 更易擴充套件。而目前流行的後端模板引擎如 ejs, swig, jade, art 共同的問題是:

  • 需要學習各類别範本引擎定義的語法,如 {{if}}, {{loop}}
  • 對元件化支援不夠強,實現複雜,不易用

針對以上痛點,筆者基於 React 造出了 noox 這樣一個工具,專注於後端模板的解析,讓模板解析更加簡單,易用。

使用方法

安裝

npm install noox
複製程式碼

簡單的 demo

模板程式碼

首先建立元件目錄和增加模板檔案

mkdir components && cd components
vi Head.jsx
複製程式碼

Head.jsx 內容如下:

<head>
	<title>{title}</title>
	<meta name="description" content={props.description} />
	<link rel="stylesheet" href="./css/style.css" />
</head>
複製程式碼

Node.js Code

const noox = require('noox');
const nx = new noox(path.resolve(__dirname, './components'), {title: 'noox'});
let output = nx.render('Head', {description: 'hello, noox.'})
複製程式碼

輸出

<head>
	<title>noox</title>
	<meta name="description" content="hello, noox." />
	<link rel="stylesheet" href="./css/style.css" />
</head>
複製程式碼

原理

Noox 在 React 的 Jsx 的基礎上,簡化了元件引用和建立,假設建立一個目錄結構如下:

components/
  Header.jsx
  Body.jsx
  Layout.jsx
複製程式碼

執行如下 nodejs 的程式碼:

nx = new noox(path.resolve(__dirname, './components'))
複製程式碼

將會建立三個元件:

  • Header
  • Body
  • Layout

然後通過 nx.render 渲染

nx.render('Body', props)
複製程式碼

後記

感興趣的可以 star 關注下,共同探討

Github: noox

另外推廣下我們團隊的專案 YApi

相關文章