Oi, gente; não sei se esse é o melhor local para tirar dúvidas quanto a isso mas a minha dúvida é em saber se é possível criar e exportar componentes React totalmente auto suficientes em que você pode importar num projeto em Vue ou até em html puro.
Eu vi que é fácil "compilar" um componente e pegar o resultado numa string html assim:
const React = require('react');
const ReactDOMServer = require('react-dom/server');
const { Button } = require('semantic-ui-react');
function Btn(props, text) {
const button = React.createElement(
Button,
props,
text
);
const htmlButton = ReactDOMServer.renderToString(button);
return htmlButton;
}
module.exports = Btn;
Isso foi um teste rápido em commonJs mesmo em que eu compilo um botão do semantic-ui-react e retorno o elemento html como string.
Eu peguei essa string e passei como parâmetro para uma página ejs:
const router = require('express').Router();
const Btn = require('./components/Btn');
router.get('/button', (req, res) => {
const button = Btn(
{
color: 'orange',
onClick: () => { console.log('clicked!'); }
},
'Click here',
);
res.render('home', { button });
});
module.exports = router;
O botão é renderizado na página ejs com a cor certa, mas pelo modo como o React funciona, as se perdem já que eu não faço uso do React no frontend desse projeto ejs.
A dúvida seria saber se é possível compilar um componente com todo o estilo e lógica embutidos e exportar isso