基于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 相关文章推荐
Jquery CheckBox全选方法代码附js checkbox全选反选代码
Jun 09 Javascript
JS 实现点击a标签的时候让其背景更换
Oct 15 Javascript
jquery禁用右键单击功能屏蔽F5刷新
Mar 17 Javascript
嵌入式iframe子页面与父页面js通信的方法
Jan 20 Javascript
超赞的动手创建JavaScript框架的详细教程
Jun 30 Javascript
详细探究ES6之Proxy代理
Jul 22 Javascript
jQuery学习笔记之回调函数
Aug 15 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
Apr 21 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
Feb 28 Javascript
详解Vue中使用Axios拦截器
Apr 22 Javascript
JavaScript实现单英文金山打字通
Jul 24 Javascript
jquery+ajax实现异步上传文件显示进度条
Aug 17 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
我常用的几个类
2006/10/09 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
js网页侧边随页面滚动广告效果实现
2011/04/14 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
JQuery获取文本框中字符长度的代码
2011/09/29 Javascript
关于Javascript加载执行优化的研究报告
2014/12/16 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
bootstrap Table插件使用demo
2017/08/07 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
详解使用jQuery.i18n.properties实现js国际化
2018/05/04 jQuery
Vue 之孙组件向爷组件通信的实现
2019/04/23 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
js实现时钟定时器
2020/03/26 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
2020/05/03 Javascript
Vue中computed和watch有哪些区别
2020/12/19 Vue.js
Vue过滤器,生命周期函数和vue-resource简单介绍
2021/01/12 Vue.js
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
python绘制直线的方法
2018/06/30 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
python中安装django模块的方法
2020/03/12 Python
详解如何修改python中字典的键和值
2020/09/29 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
安踏官方商城:anta.cn
2019/12/16 全球购物
办公室主任岗位承诺书
2014/05/29 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
新党员入党决心书
2015/09/22 职场文书
Vue实现下拉加载更多
2021/05/09 Vue.js