这是一个 Express 视图引擎,用于在服务器端渲染 React 组件。它渲染静态标记,并且*不支持*将这些视图挂载到客户端。
这是一个 Express 视图引擎,用于在服务器端渲染 React 组件。它渲染静态标记,并且*不支持*将这些视图挂载到客户端。
这是一个 [Express][express] 视图引擎,用于在服务器端渲染 [React][React] 组件。它渲染静态标记,不支持在客户端挂载这些视图。
它旨在替代现有的服务器端视图解决方案,例如 [jade][jade]、[ejs][ejs] 或 [handlebars][hbs]。
此包不再维护。虽然有更好的选择,但并非所有都能与 Express 配合使用。我推荐 Next.js 或 Remix。
npm install express-react-views react react-dom注意: 你必须显式安装 React 作为依赖项。从 v0.5 开始,React 在这里是同级依赖。这是为了避免使用不兼容版本时可能出现的问题。
// app.js
var app = express();
app.set('views', __dirname + '/views');
app.set('view engine', 'jsx');
app.engine('jsx', require('express-react-views').createEngine());从 v0.2 开始,你现在可以在创建引擎时传入选项。
| 选项 | 值 | 默认值 |
|---|---|---|
doctype |
任何可作为文档类型声明的字符串,该内容将前置到你的文档中 | "<!DOCTYPE html>" |
beautify |
true:在输出前美化标记(注意,这可能会因额外的空白而影响渲染) |
false |
transformViews |
true:使用 babel 对视图应用 JSX、ESNext 转换。注意: 如果项目中已经使用了 babel-register,则应将此项设置为 false |
true |
babel |
any object containing valid Babel options Note: does not merge with defaults |
{presets: ['@babel/preset-react', [ '@babel/preset-env', {'targets': {'node': 'current'}}]]} |
默认设置是合理的,但以防万一你想修改某些内容,下面展示了它的样子:
var options = { beautify: true };
app.engine('jsx', require('express-react-views').createEngine(options));在底层,[Babel][babel] 被用来将你的视图编译为与当前 node 版本兼容的代码,使用的是 [React][babel-preset-reac
暂无开放 Issues,或尚未同步最近议题。