# 如何使用 react/vue 实现一个 message API

更多描述

可以实现如下 API

message.info() message.success()

Issue

欢迎在 Issue 中交流与讨论: Issue 101 (opens new window)

Author

回答者: allan-hx (opens new window)

import React from 'react';
import ReactDOM from 'react-dom';
// info组件
import Info from 'info';
// success组件
import Success from 'success';

function createMessage(message, Com) {

  let el = document.createElement('div');

  document.body.appendChild(el);

  const component = React.createElement(Com, {
    message
  });

  ReactDOM.render(component, el);
}

const message = {
  info(message) {
    return createMessage(message, Info);
  },
  success(message) {
    return createMessage(message, Success);
  },
};

export default message;

主要实现思路就是创建一个div到body下,然后利用ReactDOM.render将组件渲染到这个容器下,这只是一个简单的实现,没实现关闭和多次调用

Last Updated: 2/24/2021, 8:56:13 AM