基于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 17 Javascript
通过实例理解javascript中没有函数重载的概念
Jun 03 Javascript
javascript实现uploadify上传格式以及个数限制
Nov 23 Javascript
javascript合并表格单元格实例代码
Jan 03 Javascript
使用vue.js实现联动效果的示例代码
Jan 10 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
Feb 22 Javascript
node安装--linux下的快速安装教程
Mar 21 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
Dec 20 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
Sep 03 Javascript
swiper Scrollbar滚动条组件详解
Sep 08 Javascript
JavaScript隐式类型转换代码实例
May 29 Javascript
在HTML5 localStorage中存储对象的示例代码
Apr 21 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
php加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
js定时调用方法成功后并停止调用示例
2014/04/08 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
Vue中的字符串模板的使用
2018/05/17 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
详解适配器在JavaScript中的体现
2018/09/28 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
利用python如何处理百万条数据(适用java新手)
2018/06/06 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
python实现计算图形面积
2021/02/22 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
html5的新增的标签和废除的标签简要概述
2013/02/20 HTML / CSS
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
财务会计实习报告体会
2013/12/20 职场文书
执行力心得体会
2013/12/31 职场文书
物业招聘计划书
2014/01/10 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
家长学校工作方案
2014/05/07 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
学校捐书倡议书
2015/04/27 职场文书
小学二年级语文教学反思
2016/03/03 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js
React配置子路由的实现
2021/06/03 Javascript
Vertica集成Apache Hudi重磅使用指南
2022/03/31 Servers
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS