React里面有一个规范:
Note:
The comment parser is very strict right now; in order for it to pick up the @jsx
modifier,two conditions are required.
The @jsx
comment block must be the first comment on the file.
The comment must start with /**
(/*
and //
will not work).
If the parser can't find the @jsx
comment, it will output the file without transforming it.
实例:
/** @jsx React.DOM */ React.renderComponent( React.DOM.h1(null, 'Hello, world!'), document.getElementById('example') );
出于好奇,看了一下实现,还真是有点收获:
facebook有一个JSXTransformer.js的工具,做一些js的parse工作
var docblock = require('jstransform/src/docblock');
这个jstransform哪里有呢?
这个东西可以做很多事情,看了一下源码
var docblockRe = /^\s*(\/\*\*(.|\r?\n)*?\*\/)/; var ltrimRe = /^\s*/; /** * @param {String} contents * @return {String} */ function extract(contents) { var match = contents.match(docblockRe); //match == > ["/** @jsx React.DOM */", "/** @jsx React.DOM */", " "] if (match) { //这部分是去掉开始的空格 //比如 /** @jsx React.DOM */这种会过滤前面的空格 return match[0].replace(ltrimRe, '') || ''; } return ''; }
function parseAsObject(docblock) { var pairs = parse(docblock); //pairs ==> [["jsx", "React.DOM"]] var result = {}; for (var i = 0; i < pairs.length; i++) { result[pairs[i][0]] = pairs[i][1]; } return result; }
相关推荐
通过合理利用上述提到的各种资源和最佳实践,开发者不仅可以迅速掌握 React 的基础知识,还能深入理解其背后的原理和技术细节,从而在实际项目中发挥出更大的价值。无论是初学者还是有经验的开发者,都能从这些资源...
本教程“网页制作技术教程—动态网页篇”将引领读者深入理解这一领域的关键概念和技术。 动态网页与静态网页的主要区别在于,静态网页的内容在服务器上是固定的,而动态网页的内容则是由服务器根据用户的请求动态...
- **React 学习之道**: 这个网站提供了大量的实战项目示例,适合那些希望通过构建真实项目来学习 React 的人。 - **React + Redux 教程 - Redux 官方文档**: Redux 是 React 应用的状态管理库,Redux 官方文档中的...
这篇文章将详细探讨这三个概念,以及它们如何协同工作。 首先,JavaScript是互联网上最广泛使用的编程语言之一,尤其在前端开发领域。它为网页提供了动态交互性,允许用户与网页进行实时互动。ECMAScript(ES)标准...
由于它的跨平台特性和高效的开发能力,Flutter已成为移动开发者首选的框架之一。接下来,我们将根据文件提供的信息,详细解读Flutter开发相关的知识点。 Dart语言和Flutter基础是任何初学者进入Flutter世界的前提。...
这篇教程将深入探讨这两个关键技术,帮助初学者和进阶者巩固其在Web开发领域的基础。 HTML(HyperText Markup Language)是用于创建网页结构的标准标记语言。它由一系列标签组成,这些标签告诉浏览器如何呈现内容。...
在提供的`webpack-core-usage-master`压缩包中,包含了关于Webpack 2使用的示例和教程,你可以通过学习这些实例来更好地理解Webpack的工作原理和配置方式。对于React全家桶文章全集,你可以访问`...
从"Lesson1: Hello React-Native"开始,这个教程旨在帮助初学者快速理解并掌握React Native的基本概念和用法。在这个章节中,我们将引导读者搭建开发环境,编写第一个“Hello World”程序,从而体验React Native的...
【压缩包子文件的文件名称列表】:"精通FusionCharts" 这个文件可能包含了一系列的章节、示例代码、练习材料或者教程文档,用于辅助学习者逐步精通FusionCharts的使用。这些资源可能包括HTML、JavaScript、CSS代码...
文章并不是一个简单的教程,而是基于作者在使用vue-cli构建应用时遇到的一系列问题,通过这些问题深入地探索和理解Vue及Vuex的工作原理和最佳实践。 首先,作者提到在学习框架之前,基础是最重要的。他个人最初接触...
* CSS3:CSS3新选择器、伪元素、脸色表示法、边框、阴影、background系列属性改变、Transition、动画、景深和深透、3D效果制作、Velocity.js框架、元素进场、出场策略、炫酷CSS3网页制作 * Bootstrap:响应式概念、...
这篇博客可能会讲解如何初始化图表、添加数据系列、响应式设计、事件处理以及与其他前端框架(如React、Vue等)的集成。 标签"源码"暗示了可能有Highcharts的示例代码或者源码解析,这对于我们理解其内部工作原理和...
【压缩包子文件的文件名称列表】: "第5章"表明可能是一个系列教程的一部分,第5章可能涵盖了前端开发中的某个重要主题,比如模块化、响应式设计、动画效果、性能优化,或者是关于前端架构设计的内容。 在前端开发的...
由于具体文件内容未知,我们可以假设它可能包含了一次Web大赛的参赛项目源码、比赛规则文档、评分标准、或者是一系列用于学习和准备比赛的资源,比如教程、练习题目和解题思路。 结合以上信息,我们可以探讨Web开发...
这篇“tech-blog”很可能是关于JavaScript的技术分享或者教程,通过阅读博客文章,我们可以学习到JavaScript的各种核心概念、应用以及最新的发展动态。 JavaScript最初由Brendan Eich在1995年为 Netscape Navigator...
6. **框架与库**:如React、Vue、Angular等,了解它们的工作原理和应用。 7. **实践项目**:提供实战项目,让学习者将理论知识应用于实际开发中。 在学习过程中,你可能会遇到各种挑战,但通过逐步学习和实践,你...
在这个压缩包中,我们可能找到与HTML相关的各种资源,如源代码、示例、教程或者一篇关于HTML技术的论文。 首先,HTML的基本结构由一系列的元素组成,每个元素通过标签来定义。这些标签分为闭合标签(例如`<p>`用于...