讲解了vue2,vue3 两个子应用开发.
vue2----开发新能源页面
vue3----开发选车,首页页面
vue3与vue2开发,
data,method和写vue2一样开发子应用setup/ composition API方式开发子应用新建项目目录如下:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DcsOARhi-1660972837944)(img/image-20220820132026998.png)]](https://1000bd.com/contentImg/2024/03/29/74804a3fdb4d7297.png)
$ create-react react15
然后进入react15 项目中执行命令
启动项目
$ npm run start
{
"name": "react16",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "cross-env NODE_ENV=development webpack-dev-server --mode production"
},
"dependencies": {
"node-sass": "^5.0.0",
"react": "15.6.2",
"react-dom": "15.6.2",
"sass-loader": "^6.0.7"
},
"devDependencies": {
"@babel/core": "^7.7.2",
"@babel/plugin-transform-react-jsx": "^7.7.0",
"@babel/preset-env": "^7.7.1",
"@babel/preset-react": "^7.10.4",
"babel-loader": "^8.0.6",
"cross-env": "^6.0.3",
"css-loader": "^3.2.0",
"html-webpack-plugin": "^3.2.0",
"mini-css-extract-plugin": "^0.8.0",
"react-redux": "^7.2.4",
"react-router": "^3.2.0",
"style-loader": "^1.0.0",
"url-loader": "^4.1.1",
"webpack": "^4.41.2",
"webpack-cli": "^3.3.10",
"webpack-dev-server": "^3.9.0"
},
"license": "ISC"
}
webpack.config.js
const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
module.exports = {
entry: {
path: ['./index.js']
},
module: {
rules: [
{
test: /\.js(|x)$/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env', '@babel/preset-react']
}
}
},
{
test: /\.(c|sc)ss$/,
use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader']
},
{
test: /\.(png|svg|jpg|gif)$/,
use: {
loader: 'url-loader',
}
}
]
},
optimization: {
splitChunks: false,
minimize: false
},
plugins: [
new HtmlWebpackPlugin({
template: './public/index.html'
}),
new MiniCssExtractPlugin({
filename: '[name].css'
})
],
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'react15.js',
library: 'react15',
libraryTarget: 'umd',
umdNamedDefine: true,
publicPath: 'http://localhost:8080/'
},
devServer: {
// 配置允许跨域
headers: { 'Access-Control-Allow-Origin': '*' },
contentBase: path.join(__dirname, 'dist'),
compress: true,
port: 8080,
historyApiFallback: true,
hot: true,
},
performance: { // 就是为了加大文件允许体积,提升报错门栏。
hints: "warning", // 枚举
maxAssetSize: 500000000, // 整数类型(以字节为单位)
maxEntrypointSize: 500000000, // 整数类型(以字节为单位)
assetFilter: function(assetFilename) {
// 提供资源文件名的断言函数
return assetFilename.endsWith('.css') || assetFilename.endsWith('.js');
}
},
}
router/index1.jsx
import React from 'react'
import { Router, Route, hashHistory } from 'react-router';
import App from '../pages/App/index.jsx'
class BasicMap extends React.Component {
render() {
return (
<Router history={hashHistory}>
<Route path='/' component={App}/>
</Router>
)
}
}
export default BasicMap
index.js:入口函数
import React from 'react'
import ReactDOM from 'react-dom'
import BasicMap from './src/router/index1.jsx';
import "./index.scss"
const render = () => {
ReactDOM.render((
<BasicMap />
), document.getElementById('app-react'))// 挂载到`public` app-react 节点
}
render()
public/index.html
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>react15title>
head>
<body>
<noscript>
<strong>We're sorry but sub-app1 doesn't work properly without JavaScript enabled. Please enable it to continue.strong>
noscript>
<div id="app-react">div>
body>
html>
pages/App/index.jsx
import React from 'react'
class App extends React.Component {
constructor(props) {
super(props)
this.state = {
}
}
componentDidMount() {
}
render() {
return (
this is react app
)
}
}
export default App
访问http://localhost:8080/#/,查看项目是否配置成功.
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yG2JomL9-1660972837946)(img/image-20220819075734586.png)]](https://1000bd.com/contentImg/2024/03/29/04f1cbd2f3728997.png)
这里导入先前代码, 查看结果
/information
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Le1Fn6xt-1660972837947)(img/image-20220820124340510.png)]](https://1000bd.com/contentImg/2024/03/29/f5f4d41f69e83721.png)
/information-last
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pGsvU8es-1660972837948)(img/image-20220820124414142.png)]](https://1000bd.com/contentImg/2024/03/29/7adef73242c6be71.png)
/video
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VlU0kCAY-1660972837949)(img/image-20220820124512121.png)]](https://1000bd.com/contentImg/2024/03/29/e8095e98d24a7bb3.png)
video-last
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hU2RyUF8-1660972837950)(img/image-20220820124548960.png)]](https://1000bd.com/contentImg/2024/03/29/b0449b7a5e4bbd00.png)