基于react后端渲染模板引擎noox发布使用


Posted in Javascript onJanuary 11, 2018

React 组件化思想受到越来越多开发者的关注,组件化思想帮助开发者将页面解耦成一个一个组件,代码更加模块化, 更易扩展。而目前流行的后端模板引擎如 ejs, swig, jade, art 共同的问题是:

  1. 需要学习各类模板引擎定义的语法,如 {{if}}, {{loop}}
  2. 对组件化支持不够强,实现复杂,不易用

针对以上痛点,笔者基于 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" rel="external nofollow" rel="external nofollow" />
</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" rel="external nofollow" rel="external nofollow" />
</head>

原理

Noox 在 React 的 Jsx 的基础上,简化了组件引用和创建,假设创建一个目录结构如下:

components/
 Header.jsx
 Body.jsx
 Layout.jsx

运行如下 nodejs 的代码:

nx = new noox(path.resolve(__dirname, './components'))

将会创建三个组件:

  1. Header
  2. Body
  3. Layout

然后通过 nx.render 渲染

nx.render('Body', props)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
Dec 27 Javascript
Jquery 获得服务器控件值的方法小结
May 11 Javascript
基于JQuery的6个Tab选项卡插件
Sep 03 Javascript
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
Jul 09 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
Jan 09 Javascript
常规表格多表头查询示例
Feb 21 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
Oct 21 Javascript
一个炫酷的Bootstrap导航菜单
Dec 28 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
Aug 31 Javascript
快速解决vue-cli在ie9+中无效的问题
Sep 04 Javascript
vue中keep-alive,include的缓存问题
Nov 26 Javascript
vue.js实现简单购物车功能
May 30 Javascript
Router解决跨模块下的页面跳转示例
Jan 11 #Javascript
vuex 使用文档小结篇
Jan 11 #Javascript
js判断传入时间和当前时间大小实例(超简单)
Jan 11 #Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
Jan 11 #Javascript
纯js代码生成可搜索选择下拉列表的实例
Jan 11 #Javascript
web前端vue之vuex单独一文件使用方式实例详解
Jan 11 #Javascript
vue-cli webpack 引入jquery的方法
Jan 10 #jQuery
You might like
第三节 定义一个类 [3]
2006/10/09 PHP
一个简单的PHP&amp;MYSQL留言板源码
2020/07/19 PHP
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
2016/08/01 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
JavaScript继承的特性与实践应用深入详解
2018/12/30 Javascript
使用Angular自定义字段校验指令的方法示例
2019/02/01 Javascript
微信小程序用canvas画图并分享
2020/03/09 Javascript
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
python文件比较示例分享
2014/01/10 Python
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
Python操作MySQL数据库9个实用实例
2015/12/11 Python
python和ruby,我选谁?
2017/09/13 Python
TensorFlow实现Batch Normalization
2018/03/08 Python
python版DDOS攻击脚本
2019/06/12 Python
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
2020/04/27 HTML / CSS
外语学院毕业生的自我鉴定
2013/11/28 职场文书
英语自荐信常用语句
2013/12/13 职场文书
校园创业策划书
2014/01/14 职场文书
教师业务学习制度
2014/01/25 职场文书
书香校园建设方案
2014/05/02 职场文书
岗位说明书怎么写
2014/07/30 职场文书
遗嘱继承权公证书
2015/01/26 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书