基于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汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
Dec 20 Javascript
验证控件与Button的OnClientClick事件详细解析
Dec 04 Javascript
JS实现简洁、全兼容的拖动层实例
May 13 Javascript
jQuery实现ctrl+enter(回车)提交表单
Oct 19 Javascript
jquery制作属于自己的select自定义样式
Nov 23 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
Dec 14 Javascript
jQuery.Callbacks()回调函数队列用法详解
Jun 14 Javascript
Bootstrap缩略图的创建方法
Mar 22 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
Aug 23 Javascript
解决vue打包项目后刷新404的问题
Mar 06 Javascript
详解Angular6.0使用路由步骤(共7步)
Jun 29 Javascript
解决jQuery使用append添加的元素事件无效的问题
Aug 30 jQuery
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 foreach 使用&amp;(与运算符)引用赋值要注意的问题
2010/02/16 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
JavaScript学习笔记(十)
2010/01/17 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
js实现jquery的offset()方法实例
2015/01/10 Javascript
js实现防止被iframe的方法
2015/07/03 Javascript
jQuery实用技巧必备(下)
2015/11/03 Javascript
JavaScript阻止回车提交表单的方法
2015/12/30 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
PHP捕捉异常中断的方法
2016/10/24 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
Python内置数据类型详解
2014/08/18 Python
python中list列表的高级函数
2016/05/17 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
2018/02/13 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
2020/01/22 Python
python rsa-oaep加密的示例代码
2020/09/23 Python
HTML5中的新元素介绍
2008/10/17 HTML / CSS
简述数据库的设计过程
2015/06/22 面试题
部队领导证婚词
2014/01/12 职场文书
我们的节日清明节活动方案
2014/03/05 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
大学生村官考核材料
2014/05/23 职场文书
2014镇副书记群众路线专题民主生活会思想汇报
2014/09/23 职场文书
开平碉楼导游词
2015/02/06 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书
Opencv中cv2.floodFill算法的使用
2021/06/18 Python