基于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 相关文章推荐
让IE8支持DOM 2(不用框架!)
Dec 31 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
Nov 09 Javascript
javascript避免数字计算精度误差的方法详解
Mar 05 Javascript
js怎么覆盖原有方法实现重写
Sep 04 Javascript
javascript学习笔记(二)数组和对象部分
Sep 30 Javascript
text-align:justify实现文本两端对齐 兼容IE
Aug 19 Javascript
功能强大的Bootstrap组件(结合js)
Aug 03 Javascript
React组件生命周期详解
Jul 03 Javascript
Bootstrap Table 搜索框和查询功能
Nov 30 Javascript
vuejs选中当前样式active的实例
Aug 22 Javascript
VUE使用axios调用后台API接口的方法
Aug 03 Javascript
v-slot和slot、slot-scope之间相互替换实例
Sep 04 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 用数组降低程序的时间复杂度
2009/12/04 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
PHP基本语法总结
2014/09/06 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
2017/04/18 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
DLL+ ActiveX控件+WEB页面调用例子
2010/08/07 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
Vue中div contenteditable 的光标定位方法
2018/08/25 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
2018/09/25 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
用python编写第一个IDA插件的实例
2018/05/29 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
法律系毕业生求职信
2014/05/28 职场文书
选秀节目策划方案
2014/06/06 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
酒店服务员岗位职责
2015/02/09 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
父亲去世追悼词
2015/06/23 职场文书
母亲去世追悼词
2015/06/23 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript
在项目中使用redis做缓存的一些思路
2021/09/14 Redis
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers