gpt4 book ai didi

javascript - 在没有 webpack 或 browserify 的情况下使用带有 CDN 的 React Router

转载 作者:可可西里 更新时间:2023-11-01 01:49:04 26 4
gpt4 key购买 nike

Resume:我需要在没有 wepback 或类似工具的情况下运行 React Router。直接来自 CDN 链接,但我遇到了一些 require.js 错误。


我开始使用 React 构建我的第一个应用程序,但我正在努力使用 React Router。

HTML:

<body>
<div id="container"></div>


<script src="https://unpkg.com/react@15/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@15/dist/react-dom.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.js"></script>

<script src="https://npmcdn.com/react-router@2.4.0/umd/ReactRouter.js"></script>

<script type="text/babel" src="assets/scripts/03_templates/app.js" charset="utf-8"></script>

</body>

JS:

var { Router, Route, IndexRoute, hashHistory, IndexLink, Link, browserHistory } = ReactRouter;

//some classes

ReactDOM.render((
<Router history={hashHistory}>
<Route path="/" component={Window}>
<IndexRoute component={InitialPage}/>
<Route path="register" component={Register} />
<Route path="search" component={Search} />
</Route>
</Router>
), document.getElementById("container"));

一切都运行良好,但我在控制台上看到了这个:

react.js:3639 Warning: You are manually calling a React.PropTypes validation function for the getComponent prop on IndexRoute. This is deprecated and will not work in production with the next major version. You may be seeing this warning due to a third-party PropTypes library.

所以,我想我的 React Router 是旧版本。我将链接更改为

<script src="https://cdnjs.cloudflare.com/ajax/libs/react-router/4.0.0-0/react-router.js"></script> 

Warning: React.createElement: type should not be null, undefined, boolean, or number. It should be a string (for DOM elements) or a ReactClass (for composite components).

我搜索了一下,似乎问题出在第 1 行。所以我更改了这个:

var { Router, Route, IndexRoute, hashHistory, IndexLink, Link, browserHistory } = ReactRouter;

对此:

import { Router, Route, IndexRoute, hashHistory, IndexLink, Link, browserHistory } from 'react-router';

现在我遇到了这个问题:

app.js:2 Uncaught ReferenceError: require is not defined

我搜索了 require.js,尝试了一些东西,但没有解决我的问题。我错过了什么?我需要在没有 webpack 或类似工具的情况下运行它。

谢谢

最佳答案

react route v4.0,请阅读react-router package在您的页面上添加两个 js 链接:

<script src="https://unpkg.com/react-router/umd/react-router.min.js"></script>
<script src="https://unpkg.com/react-router-dom/umd/react-router-dom.min.js"></script>

在 js 代码中你可以使用:

const Router = window.ReactRouterDOM.BrowserRouter;
const Route = window.ReactRouterDOM.Route;
const Link = window.ReactRouterDOM.Link;
const Prompt = window.ReactRouterDOM.Prompt;
const Switch = window.ReactRouterDOM.Switch;
const Redirect = window.ReactRouterDOM.Redirect;

还可以用

console.log(window.ReactRouterDOM);

输出所有对象,如:

ReactRouteDOM Objects

关于javascript - 在没有 webpack 或 browserify 的情况下使用带有 CDN 的 React Router,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40764596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com