基于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 相关文章推荐
起点页面传值js,有空研究学习下
Jan 25 Javascript
javascript 自动填写表单的实现方法
Apr 09 Javascript
通过判断JavaScript的版本实现执行不同的代码
May 11 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
Jan 22 Javascript
javascript 获取元素样式必杀技
May 04 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
Dec 20 Javascript
jQuery的层级查找方式分析
Jun 16 Javascript
Javascript闭包与函数柯里化浅析
Jun 22 Javascript
angular ng-click防止重复提交实例
Jun 16 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
Oct 08 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
Nov 09 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
Mar 17 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
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
详解PHP中cookie和session的区别及cookie和session用法小结
2016/06/12 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
jQuery toggle()设置CSS样式
2009/11/05 Javascript
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
xmlplus组件设计系列之按钮(2)
2017/04/26 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
2017/12/18 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
Vue切换div显示隐藏,多选,单选代码解析
2020/07/14 Javascript
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
基于Python打造账号共享浏览器功能
2019/05/30 Python
Django如何实现上传图片功能
2019/08/16 Python
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
关于爱情的广播稿
2014/01/16 职场文书
家长评语大全
2014/01/22 职场文书
赡养老人协议书
2014/04/21 职场文书
信用卡工资证明范本
2014/10/17 职场文书
家属慰问信
2015/02/14 职场文书
环卫工作个人总结
2015/03/04 职场文书
校长新学期寄语2016
2015/12/04 职场文书
python自动化测试之Selenium详解
2022/03/13 Python