#javascript #html #reactjs
#javascript #HTML #reactjs
Вопрос:
Я начинаю изучать React и пытаюсь запустить эту страницу, но я обнаружил эту ошибку: отказано в выполнении скрипта из ‘https://unpkg.com/browse/babel-standalone@6.26.0/babel.min.js ‘потому что его MIME-тип (‘text/html’) не является исполняемым, и включена строгая проверка типа MIME. Может кто-нибудь мне помочь?
<!DOCTYPE html>
<html lang="en">
<head>
<title> React work </title>
<meta charset="utf-8" >
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
<script crossorigin src="https://unpkg.com/browse/babel-standalone@6.26.0/babel.min.js"></script>
</head>
<body>
<div id='react-root'></div>
<script type="text/babel">
class Bonjour extends React.Component
{
render()
{
return (
<h1> Hello from React </h1>
)
}
}
ReactDOM.render(
<Bonjour/>,
document.getElementById('react-root')
)
</script>
</body>
</html>
Ответ №1:
Ваша ссылка неверна. /browse является:
https://unpkg.com/browse/babel-standalone@6.26.0/babel.min.js
Это веб-страница, а не .js
файл. Нажмите кнопку «Просмотреть необработанный», чтобы перейти к простому JS:
https://unpkg.com/babel-standalone@6.26.0/babel.min.js
Используйте это вместо этого, и вы получите:
<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
<script crossorigin src="https://unpkg.com/babel-standalone@6.26.0/babel.min.js"></script>
<div id='react-root'></div>
<script type="text/babel">
class Bonjour extends React.Component
{
render()
{
return (
<h1> Hello from React </h1>
)
}
}
ReactDOM.render(
<Bonjour/>,
document.getElementById('react-root')
)
</script>
Но, предложение — используйте Babel Standalone только для отладки, если это возможно. Для реальных приложений, как только они будут готовы для публичного использования, лучше перенести JSX самостоятельно, а затем предоставить его клиентам. (Babel Standalone заставляет клиентов самостоятельно выполнять перенос кода, что требует довольно больших накладных расходов)
Комментарии:
1. Большое спасибо. Итак, как я могу перенести JSX самостоятельно? У вас есть какая-нибудь ссылка для меня, пожалуйста?
2. create-react-app — хорошая отправная точка, хотя вы также можете связать все пакеты вместе вручную, если хотите