`
zhangyaochun
  • 浏览: 2609532 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

React教程系列之原理篇

阅读更多

 

   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框架】资源.docx

    通过合理利用上述提到的各种资源和最佳实践,开发者不仅可以迅速掌握 React 的基础知识,还能深入理解其背后的原理和技术细节,从而在实际项目中发挥出更大的价值。无论是初学者还是有经验的开发者,都能从这些资源...

    网页制作技术教程—动态网页篇

    本教程“网页制作技术教程—动态网页篇”将引领读者深入理解这一领域的关键概念和技术。 动态网页与静态网页的主要区别在于,静态网页的内容在服务器上是固定的,而动态网页的内容则是由服务器根据用户的请求动态...

    以下是一些前端开发的教程、案例和相关项目.docx

    - **React 学习之道**: 这个网站提供了大量的实战项目示例,适合那些希望通过构建真实项目来学习 React 的人。 - **React + Redux 教程 - Redux 官方文档**: Redux 是 React 应用的状态管理库,Redux 官方文档中的...

    javascript, 关于 JavaScript,反应,Redux的一系列捷克文文章.zip

    这篇文章将详细探讨这三个概念,以及它们如何协同工作。 首先,JavaScript是互联网上最广泛使用的编程语言之一,尤其在前端开发领域。它为网页提供了动态交互性,允许用户与网页进行实时互动。ECMAScript(ES)标准...

    Flutter完整开发实战详解系列.pdf

    由于它的跨平台特性和高效的开发能力,Flutter已成为移动开发者首选的框架之一。接下来,我们将根据文件提供的信息,详细解读Flutter开发相关的知识点。 Dart语言和Flutter基础是任何初学者进入Flutter世界的前提。...

    javascript与html实用教程

    这篇教程将深入探讨这两个关键技术,帮助初学者和进阶者巩固其在Web开发领域的基础。 HTML(HyperText Markup Language)是用于创建网页结构的标准标记语言。它由一系列标签组成,这些标签告诉浏览器如何呈现内容。...

    webpack-core-usage:webpack2完整系列课程,欢迎阅读。同时欢迎移步我的React全家桶文章全集:https:github.comliangklfanglreact-article-bucket

    在提供的`webpack-core-usage-master`压缩包中,包含了关于Webpack 2使用的示例和教程,你可以通过学习这些实例来更好地理解Webpack的工作原理和配置方式。对于React全家桶文章全集,你可以访问`...

    CBlog:前端技术分享

    从"Lesson1: Hello React-Native"开始,这个教程旨在帮助初学者快速理解并掌握React Native的基本概念和用法。在这个章节中,我们将引导读者搭建开发环境,编写第一个“Hello World”程序,从而体验React Native的...

    从入门到精通 FusionCharts Free

    【压缩包子文件的文件名称列表】:"精通FusionCharts" 这个文件可能包含了一系列的章节、示例代码、练习材料或者教程文档,用于辅助学习者逐步精通FusionCharts的使用。这些资源可能包括HTML、JavaScript、CSS代码...

    详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用

    文章并不是一个简单的教程,而是基于作者在使用vue-cli构建应用时遇到的一系列问题,通过这些问题深入地探索和理解Vue及Vuex的工作原理和最佳实践。 首先,作者提到在学习框架之前,基础是最重要的。他个人最初接触...

    大前端学习流程

    * CSS3:CSS3新选择器、伪元素、脸色表示法、边框、阴影、background系列属性改变、Transition、动画、景深和深透、3D效果制作、Velocity.js框架、元素进场、出场策略、炫酷CSS3网页制作 * Bootstrap:响应式概念、...

    highchart(api)

    这篇博客可能会讲解如何初始化图表、添加数据系列、响应式设计、事件处理以及与其他前端框架(如React、Vue等)的集成。 标签"源码"暗示了可能有Highcharts的示例代码或者源码解析,这对于我们理解其内部工作原理和...

    前台02

    【压缩包子文件的文件名称列表】: "第5章"表明可能是一个系列教程的一部分,第5章可能涵盖了前端开发中的某个重要主题,比如模块化、响应式设计、动画效果、性能优化,或者是关于前端架构设计的内容。 在前端开发的...

    web大赛

    由于具体文件内容未知,我们可以假设它可能包含了一次Web大赛的参赛项目源码、比赛规则文档、评分标准、或者是一系列用于学习和准备比赛的资源,比如教程、练习题目和解题思路。 结合以上信息,我们可以探讨Web开发...

    tech-blog

    这篇“tech-blog”很可能是关于JavaScript的技术分享或者教程,通过阅读博客文章,我们可以学习到JavaScript的各种核心概念、应用以及最新的发展动态。 JavaScript最初由Brendan Eich在1995年为 Netscape Navigator...

    js_training_repo

    6. **框架与库**:如React、Vue、Angular等,了解它们的工作原理和应用。 7. **实践项目**:提供实战项目,让学习者将理论知识应用于实际开发中。 在学习过程中,你可能会遇到各种挑战,但通过逐步学习和实践,你...

    thesis_public

    在这个压缩包中,我们可能找到与HTML相关的各种资源,如源代码、示例、教程或者一篇关于HTML技术的论文。 首先,HTML的基本结构由一系列的元素组成,每个元素通过标签来定义。这些标签分为闭合标签(例如`&lt;p&gt;`用于...

Global site tag (gtag.js) - Google Analytics