[React] Create and import React components with Markdown using MDXC

In this lesson I demonstrate how to use the library MDXC to create and import React components with Markdown. MDXC converts markdown into JavaScript and supports JSX.

Additional Resources: https://github.com/jamesknelson/mdxc

 
Create a React app by using 'create-react-app':
// .babelrc

{
    "presets": ["babel-preset-react-app"]
}

 

Then, you can import a component from any Markdown file by prepending the filename with !babel-loader!mdx-loader!. For example:

/* eslint-disable import/no-webpack-loader-syntax */
import DocumentComponent from '!babel-loader!mdx-loader!../pages/index.md'

 

App.js

复制代码
/* eslint-disable import/no-webpack-loader-syntax */

import React, { Component } from "react";
import logo from "./logo.svg";
import "./App.css";

import HelloWorld from "!babel-loader!mdx-loader!./HelloWorld.md";

class App extends Component {
  render() {
    return (
      <div className="App">
        <header className="App-header">
          <img src={logo} className="App-logo" alt="logo" />
          <h1 className="App-title">Welcome to React</h1>
        </header>
        <p className="App-intro">
          To get started, edit <code>src/App.js</code> and save to reload.
        </p>
        <HelloWorld text="blah blah blah" />
      </div>
    );
  }
}

export default App;
复制代码
复制代码
import Bold from "./Bold"

import Italic from "!babel-loader!mdx-loader!./Italic.md"

prop text

# Heading 1

## Heading 2

<p>{text}</p>
<Bold>This text is Bold</Bold>
<Italic>This text is Italic</Italic>
复制代码

Bold.js:

import React from "react";

export default function Bold({ children }) {
  return <b>{children}</b>;
}

Italic.md

prop children

{children}

 

Github

 

posted @   Zhentiw  阅读(246)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2017-10-22 [AngularFire] Angular File Uploads to Firebase Storage with Angular control value accessor
2017-10-22 [Angular] Create a custom validator for template driven forms in Angular
2016-10-22 [RxJS] Stopping a shared observable execution
2016-10-22 [Angular 2] Share Template Content In Another Template With Content Projection <ng-content>
点击右上角即可分享
微信分享提示