基于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写的操作系统
Apr 23 Javascript
JavaScript判断一个URL链接是否有效的实现方法
Oct 08 Javascript
鼠标滚轮改变图片大小的示例代码
Nov 20 Javascript
用javascript读取xml文件读取节点数据
Aug 12 Javascript
探寻Javascript执行效率问题
Nov 12 Javascript
JS实现下拉菜单赋值到文本框的方法
Aug 18 Javascript
第七章之菜单按钮图标组件
Apr 25 Javascript
AnjularJS中$scope和$rootScope的区别小结
Sep 18 Javascript
JS实现无缝循环marquee滚动效果
May 22 Javascript
Three.js实现浏览器变动时进行自适应的方法
Sep 26 Javascript
JavaScript常用工具方法封装
Feb 12 Javascript
bootstrap table实现横向合并与纵向合并
Jul 18 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&amp;&amp;mysql)三
2006/10/09 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
PHP小偷程序的设计与实现方法详解
2016/10/15 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
YII框架http缓存操作示例
2019/04/29 PHP
js鼠标左右键 键盘值小结
2010/06/11 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
利用css+原生js制作简单的钟表
2020/04/07 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
Bootstrap使用基础教程详解
2016/09/05 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
Python try except finally资源回收的实现
2021/01/25 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
专科文秘应届生求职信
2013/11/18 职场文书
高校自主招生自荐信
2013/12/09 职场文书
学习十八大报告感言
2014/02/04 职场文书
社区禁毒工作方案
2014/06/02 职场文书
同学聚会通知短信
2015/04/20 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
新闻报道稿范文
2015/07/23 职场文书
宣传委员竞选稿
2015/11/19 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书
导游词之张家口
2019/12/13 职场文书
Python装饰器的练习题
2021/11/23 Python
PC版《死亡搁浅导剪版》现已发售 展开全新的探险
2022/04/03 其他游戏
解决vue自定义组件@click点击失效问题
2022/04/30 Vue.js