导入模块时,“ as”是什么意思?

for*_*orJ 6 javascript reactjs

导入多个内容是什么意思?例如

import {
  BrowserRouter as Router,
  Route,
  Link
} from 'react-router-dom'
Run Code Online (Sandbox Code Playgroud)

这只是React Router的一个示例,而javascript文档仅显示了“ as”后的一个声明示例

好像将BrowserRouter导入为Router,Route和Link一样,所以所有三个变量都引用同一个库。如果我是对的,那你为什么要这么做呢?

一样var Router, Route, Link = require('react-router-dom').BrowserRouter();吗?

x-r*_*ray 6

该声明

import {
  BrowserRouter as Router,
  Route,
  Link
} from 'react-router-dom'
Run Code Online (Sandbox Code Playgroud)

有选择地导入BrowserRouterRouteLinkreact-router-dom. 该as Router语句BrowserRouter以名称Router(而不是BrowserRouter)提供。的名称RouteLink不会改变。

它相当于:

const Router = require("react-router-dom").BrowserRouter;
const Route = require("react-router-dom").Route;
const Link = require("react-router-dom").Link;
Run Code Online (Sandbox Code Playgroud)


AP.*_*AP. 5

不,完全不是那样!这是添加到导入/导出功能的和谐功能。

它与此相同:

let tmp = require("react-router-dom")
let Router = tmp.BrowserRouter
let Route = tmp.Route
let Link = tmp.Link
Run Code Online (Sandbox Code Playgroud)

或者干脆:

const {BrowserRouter: Router, Route, Link} = require("react-router-dom")
Run Code Online (Sandbox Code Playgroud)