【问题标题】:Is it possible to convert React code to HTML, CSS, JavaScript?是否可以将 React 代码转换为 HTML、CSS、JavaScript?
【发布时间】:2021-06-21 01:44:43
【问题描述】:

我正在尝试使用 React 制作一个没有任何后端的网站,我只想使用组件和类似的东西。我还想将它转换为 HTML、CSS 和 JavaScript 文件,因为这样发布它对我来说更容易。我听说 Angular 有这样的功能,但我不确定 React 是否有。

如果没有办法做到这一点,有人可以回答说不可能吗?另外,如果它实际上在 Angular 中是可能的,那么该怎么做呢?我可能会为此学习 Angular。

我知道将它作为 React 应用程序上传更容易,但我不能这样做,所以我需要一个 HTML、CSS 和 JavaScript 文件。我也是初学者,所以我不明白他们的意思是我应该在我的代码中做什么。我跑了

npm run build

但是,当我尝试将其放入我的域时,它不起作用,this is what i see

还有this is the structure I have on CPanel. 不知何故我没有得到任何结果,在 npm run build 命令之前这是代码(有效):

我的 app.js:

import React, { useState } from 'react';
import FlashcardList from './FlashcardList'
function App() {
  const [Flashcards, setFlashcards] = useState(HIRAGANA_FLASHCARDS)
  return (
    <FlashcardList flashcards={Flashcards} />
    );
}
const HIRAGANA_FLASHCARDS = [
  //bunch of data
]
function shuffle(array) {
  var currentIndex = array.length, temporaryValue, randomIndex;

  // While there remain elements to shuffle...
  while (0 !== currentIndex) {

    // Pick a remaining element...
    randomIndex = Math.floor(Math.random() * currentIndex);
    currentIndex -= 1;

    // And swap it with the current element.
    temporaryValue = array[currentIndex];
    array[currentIndex] = array[randomIndex];
    array[randomIndex] = temporaryValue;
  }

  return array;
}

// Used like so
shuffle(HIRAGANA_FLASHCARDS);
export default App;

我的 flashcardlist.js:

import React from 'react'
import Flashcard from './Flashcard'

export default function FlashcardList({flashcards}) {
    return (
        <div className="card-grid">
            {flashcards.map(flashcard => {
                return <Flashcard flashcard={flashcard} key={flashcard.id}/>
            })}
        </div>
    )
}

还有我的 flashcard.js:

import React, {useState} from 'react'
import './main.css'
export default function Flashcard({flashcard}) {
    const [Flip, setFlip] = useState(false)
    return (
        <div className="text" onClick={() => {
            setFlip(!Flip)
        }}>
            {Flip ? flashcard.answer : flashcard.question}
        </div>
    )
}

【问题讨论】:

  • 是的,Angular 和 React 应用程序都可以(并且通常是)“构建”到静态 HTML、CSS 和 JS。两者的默认设置(使用 Angular CLI 或 Create React App)都包含一个执行此操作的命令。

标签: javascript html reactjs angular web


【解决方案1】:

听起来你指的是静态渲染,这是 React 的一个特性。这就是服务器端渲染 (SSR) 的完成方式。 React 应用程序在服务器上呈现,使用 ReactDOM.renderToString() 转换为 HTML,然后发送到客户端。

通常情况下,客户端上会有一个“补水”,然后应用程序会使用 javascript 重新渲染,但这不是必需的。您可以静态提供 HTML,并且永远不要在客户端上“水合”应用程序。

事实上,这是我在我的应用程序中用于某些不需要动态的路由的方法。我“静态渲染”该路由并将输出保存到一个 .html 文件,然后当请求该路由时,我的服务器将其发送给客户端,就好像它只是一个静态创建的 .html 文件一样。

See React's documentation on this here

【讨论】:

  • 感谢您的回复,我仍然有一些问题,请问您可以给我一个视频教程吗?
  • 我认为他们不是在描述 SSR,只是在描述常规的构建过程;他们明确说“没有任何后端”,而 SSR 需要一个。
  • 好的,但我不明白如何使用它,使用什么命令或写什么......
  • 是的,@DominikDev,在我更新我的答案之前,你能澄清一下“没有任何后端”的意思吗?你打算如何服务甚至是构建的文件?或者更确切地说,根据我的帖子静态渲染的版本。这可能会影响你应该如何去做。
  • 感谢@Josh 回复我已经这样做了,我面临的问题是无法在我的域上看到它
猜你喜欢
  • 2015-05-20
  • 2018-03-31
  • 1970-01-01
  • 1970-01-01
  • 2021-08-22
  • 2017-07-22
  • 2021-10-02
  • 1970-01-01
  • 2022-01-16
相关资源
最近更新 更多