目錄
一.適用人群
二.目的
三.鷹架結構
四.設定npm scripts
4.1 產生package.json檔案,設定npm scripts.
五.建造鷹架目錄
六.建置config/config.js
七.建置build/webpack.base.conf.js
八.建構build/webpack.dev.conf.js
9.建立build/webpack.prod.conf.js
十. 建立build/build.js
十一.大功告成!
首頁 web前端 js教程 利用webpack搭建vue腳手架

利用webpack搭建vue腳手架

Jun 13, 2018 am 10:38 AM
vue webpack 打包部署 鷹架

這篇文章主要給大家介紹了軟玉利用webpack如何搭一個vue腳手架的相關資料,文中有超詳細講解和註釋,對大家學習或者使用webpack具有一定的參考學習價值,需要的朋友們下面隨著我來一起學習學習吧。

Vue作為前端三大框架之一截至到目前在github上以收穫44,873顆星,足以說明其以悄悄成為主流。 16年10月Vue發布了2.x版本,經過了一段時間的摸索和看官方的教程和api,才了解到2.0版本在1.0版本的基礎上做了很多調整,廢棄了很多api。

本文將詳細介紹利用webpack搭一個vue腳手架的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

一.適用人群

   1.對webpack知識有一定了解但不熟悉的同學.

    2.女同學! ! ! (233333....)

二.目的

在自己對webpack有進一步了解的同時,也希望能幫到一些剛接觸webpack的同學.

鷹架已放上github,不想聽我囉嗦的同學可以直接去download或clone下來看哦.

腳手架裡都有詳細註釋!

原始碼:https://github.com/webfansplz/xc-cli.git  (本地下載)

#覺得有幫助到你的同學給個star哈,也算是對我的一種支持!

三.鷹架結構

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

├── build  构建服务和webpack配置

 |—— build.js webpack打包服务

 |—— webpack.base.conf.js webpack基本通用配置

 |—— webpack.dev.conf.js webpack开发环境配置

 |—— webpack.prod.conf.js webpack生产环境配置

├── config  构建项目不同环境的配置

├── public  项目打包文件存放目录

├── index.html  项目入口文件

├── package.json 项目配置文件

├── static  静态资源

├── .babelrc  babel配置文件

├── .gitignore  git忽略文件

├── postcss.config.js postcss配置文件

├── src  项目目录

 |—— page  页面组件目录

 |—— router  vue路由配置

 |—— store  vuex配置

 |—— App.vue  vue实例入口

 |—— main.js  项目构建入口

登入後複製

四.設定npm scripts

4.1 產生package.json檔案,設定npm scripts.

4.1.1 使用npm init 指令,產生一個package.json檔!

1

npm init

登入後複製

4.1.2 全域安裝webpack和webpack-dev-server

1

npm install webpack webpack-dev-server -g

登入後複製

4.1.3 在專案目錄下安裝webpack和webpack-dev- server

1

npm install webpack webpack-dev-server -D

登入後複製

4.1.4 進入package.json設定npm scripts指令

1

2

3

4

5

"scripts": {

"dev": "webpack-dev-server --config build/webpack.dev.conf.js",

"start": "npm run dev",

"build": "node build/build.js"

}

登入後複製

  透過設定上述指令:

  我們可以透過npm start/npm run dev在本地進行開發,

  scripts.dev指令解讀:

  透過webpack-dev-server指令啟動build資料夾下webpack.dev.conf.js。

  也可以透過npm run build 打包專案檔案進行線上部署.

  scripts.build指令解讀:

  透過node指令建置build資料夾下的build.js 。

  指令的設定可以依照自己腳手架的設定檔位置和名稱不同修改喔!

五.建造鷹架目錄

同學們可以透過自己的習慣和喜愛搭建自己的鷹架目錄,下面講解以上面腳手架結構為準!

六.建置config/config.js

6.1 此檔案主要用來設定建置開發環境與生產環境差異化的參數.

6.2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

const _path = require("path");

const ExtractTextPlugin = require("extract-text-webpack-plugin");

//vue-loader基本配置

const baseVueLoaderConf = {

 //引入postcss插件

 postcss: {

 config: {

 path: _path.resolve("../")

 }

 },

 //转为require调用,让webpack处理目标资源!

 transformToRequire: {

 video: "src",

 source: "src",

 img: "src",

 image: "xlink:href"

 }

};

//vue-loader 开发环境配置

const devVueLoaderConf = Object.assign({}, baseVueLoaderConf, {

 //loaders

 loaders: {

 css: ["vue-style-loader", "css-loader"],

 less: ["vue-style-loader", "css-loader", "postcss-loader", "less-loader"]

 },

 cssSourceMap: true

});

//vue-loader 生产环境配置

const buildVueLoaderConf = Object.assign({}, baseVueLoaderConf, {

 //loaders

 loaders: ExtractTextPlugin.extract({

 use: ["css-loader", "postcss-loader", "less-loader"],

 fallback: "vue-style-loader"

 }),

 cssSourceMap: false

});

//开发/生产环境 配置参数!

module.exports = {

 dev: {

 publicPath: "/",

 devtoolType: "cheap-module-eval-source-map",

 vueloaderConf: devVueLoaderConf,

 host: "localhost",

 port: "1234",

 proxyTable: {}

 },

 build: {

 publicPath: "/",

 devtoolType: "source-map",

 vueloaderConf: buildVueLoaderConf,

 staticPath: "static"

 }

};

登入後複製

七.建置build/webpack.base.conf.js

7.1 此檔案主要是webpack開發環境和產生環境的通用設定.

7.2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

"use strict";

//引入node path路径模块

const path = require("path");

//引入webpack生产环境配置参数

const prodConfig = require("../config").build;

//拼接路径

function resolve(track) {

 return path.join(__dirname, "..", track);

}

//资源路径

function assetsPath(_path) {

 return path.join(prodConfig.staticPath, _path);

}

//webpack 基本设置

module.exports = {

 //项目入口文件->webpack从此处开始构建!

 entry: path.resolve(__dirname, "../src/main.js"),

 //配置模块如何被解析

 resolve: {

 //自动解析文件扩展名(补全文件后缀)(从左->右)

 // import hello from './hello' (!hello.js? -> !hello.vue? -> !hello.json)

 extensions: [".js", ".vue", ".json"],

 //配置别名映射

 alias: {

 // import Vue from 'vue/dist/vue.esm.js'可以写成 import Vue from 'vue'

 // 键后加上$,表示精准匹配!

 vue$: "vue/dist/vue.esm.js",

 "@": resolve("src"),

 utils: resolve("src/utils"),

 components: resolve("src/components"),

 public: resolve("public")

 }

 },

 module: {

 //处理模块的规则(可在此处使用不同的loader来处理模块!)

 rules: [

 //使用babel-loader来处理src下面的所有js文件,具体babel配置在.babelrc,主要是用来转义es6

 {

 test: /\.js$/,

 use: {

 loader: "babel-loader"

 },

 include: resolve("src")

 },

 //使用url-loader(file-loader的一个再封装)对引入的图片进行编码,此处可将小于8192字节(8kb)的图片转为DataURL(base64),

 //大于limit字节的会调用file-loader进行处理!

 //图片一般发布后都是长缓存,故此处文件名加入hash做版本区分!

 {

 test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,

 loader: "url-loader",

 options: {

 limit: 8192,

 name: assetsPath("img/[name].[hash:8].[ext]")

 }

 }

 ]

 }

};

登入後複製

八.建構build/webpack.dev.conf.js

8.1 此檔案主要用於建構開發環境

8.2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

"use strict";

//引入node path路径模块

const path = require("path");

//引入webpack

const webpack = require("webpack");

//引入webpack开发环境配置参数

const devConfig = require("../config").dev;

//引入webpack基本配置

const baseConf = require("./webpack.base.conf");

//一个webpack配置合并模块,可简单的理解为与Object.assign()功能类似!

const merge = require("webpack-merge");

//一个创建html入口文件的webpack插件!

const HtmlWebpackPlugin = require("html-webpack-plugin");

//一个编译提示的webpack插件!

const FriendlyErrorsPlugin = require("friendly-errors-webpack-plugin");

//发送系统通知的一个node模块!

const notifier = require("node-notifier");

//将webpack基本配置与开发环境配置合并!

const devConf = merge(baseConf, {

 //项目出口,webpack-dev-server 生成的包并没有写入硬盘,而是放在内存中!

 output: {

 //文件名

 filename: "[name].js",

 //html引用资源路径,在dev-server中,引用的是内存中文件!

 publicPath: devConfig.publicPath

 },

 //生成sourceMaps(方便调试)

 devtool: devConfig.devtoolType,

 //

 //启动一个express服务器,使我们可以在本地进行开发!!!

 devServer: {

 //HMR控制台log等级

 clientLogLevel: "warning",

 // 热加载

 hot: true,

 //自动刷新

 inline: true,

 //自动打开浏览器

 open: true,

 //在开发单页应用时非常有用,它依赖于HTML5 history API,如果设置为true,所有的跳转将指向index.html

 historyApiFallback: true,

 //主机名

 host: devConfig.host,

 //端口号

 port: devConfig.port,

 //配置反向代理解决跨域

 proxy: devConfig.proxyTable,

 //为你的代码进行压缩。加快开发流程和优化的作用

 compress: true,

 // 在浏览器上全屏显示编译的errors或warnings。

 overlay: {

 errors: true,

 warnings: false

 },

 // 终端输出的只有初始启动信息。 webpack 的警告和错误是不输出到终端的

 quiet: true

 },

 module: {

 //处理模块的规则(可在此处使用不同的loader来处理模块!)

 rules: [

 //使用vue-loader处理以vue结尾的文件!

 {

 test: /\.vue$/,

 loader: "vue-loader",

 options: devConfig.vueloaderConf

 },

 //使用vue-style-loader!css-loader!postcss-loader处理以css结尾的文件!

 {

 test: /\.css$/,

 use: [

 "vue-style-loader",

 {

 loader: "css-loader",

 options: {

 sourceMap: true

 }

 },

 {

 loader: "postcss-loader",

 options: {

 sourceMap: true

 }

 }

 ]

 },

 //使用vue-style-loader!css-loader!postcss-loader处理以less结尾的文件!

 {

 test: /\.less$/,

 use: [

 "vue-style-loader",

 {

 loader: "css-loader",

 options: {

 sourceMap: true

 }

 },

 {

 loader: "less-loader",

 options: {

 sourceMap: true

 }

 },

 {

 loader: "postcss-loader",

 options: {

 sourceMap: true

 }

 }

 ]

 }

 ]

 },

 plugins: [

 //开启HMR(热替换功能,替换更新部分,不重载页面!)

 new webpack.HotModuleReplacementPlugin(),

 //显示模块相对路径

 new webpack.NamedModulesPlugin(),

 //编译出错时,该插件可跳过输出,确保输出资源不会包含错误!

 // new webpack.NoEmitOnErrorsPlugin(),

 //配置html入口信息

 new HtmlWebpackPlugin({

 title: "hello,xc-cli!",

 filename: "index.html",

 template: "index.html",

 //js资源插入位置,true表示插入到body元素底部

 inject: true

 }),

 //编译提示插件

 new FriendlyErrorsPlugin({

 //编译成功提示!

 compilationSuccessInfo: {

 messages: [

 `Your application is running here: http://${devConfig.host}:${devConfig.port}`

 ]

 },

 //编译出错!

 onErrors: function(severity, errors) {

 if (severity !== "error") {

 return;

 }

 const error = errors[0];

 const filename = error.file.split("!").pop();

 //编译出错时,右下角弹出错误提示!

 notifier.notify({

 title: "xc-cli",

 message: severity + ": " + error.name,

 subtitle: filename || "",

 icon: path.join(__dirname, "xc-cli.png")

 });

 }

 })

 ]

});

module.exports = devConf;

登入後複製

8.3 透過建立以上檔案,並下載對應的依賴與建立專案入口,我們就可以透過npm run dev在本地開發vue專案啦! ! !

9.建立build/webpack.prod.conf.js

9.1 此檔案主要用於建立生產環境的設定.

9.2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

"use strict";

//引入node path路径模块

const path = require("path");

//引入webpack

const webpack = require("webpack");

//一个webpack配置合并模块,可简单的理解为与Object.assign()功能类似!

const merge = require("webpack-merge");

//引入webpack生产环境配置参数

const prodConfig = require("../config").build;

//引入webpack基本配置

const baseConf = require("./webpack.base.conf");

//一个创建html入口文件的webpack插件!

const HtmlWebpackPlugin = require("html-webpack-plugin");

//一个抽离出css的webpack插件!

const ExtractTextPlugin = require("extract-text-webpack-plugin");

//一个压缩css的webpack插件!

const OptimizeCSSPlugin = require("optimize-css-assets-webpack-plugin");

//一个拷贝文件的webpack插件!

const CopyWebpackPlugin = require("copy-webpack-plugin");

 

//资源路径

function assetsPath(_path) {

 return path.join(prodConfig.staticPath, _path);

}

//将webpack基本配置与生产环境配置合并!

const prodConf = merge(baseConf, {

 //项目出口配置

 output: {

 //Build后所有文件存放的位置

 path: path.resolve(__dirname, "../public"),

 //html引用资源路径,可在此配置cdn引用地址!

 publicPath: prodConfig.publicPath,

 //文件名

 filename: assetsPath("js/[name].[chunkhash].js"),

 //用于打包require.ensure(代码分割)方法中引入的模块

 chunkFilename: assetsPath("js/[name].[chunkhash].js")

 },

 //生成sourceMaps(方便调试)

 devtool: prodConfig.devtoolType,

 module: {

 //处理模块的规则(可在此处使用不同的loader来处理模块!)

 rules: [

 //使用vue-loader处理以vue结尾的文件!

 {

 test: /\.vue$/,

 loader: "vue-loader",

 options: prodConfig.vueloaderConf

 },

 {

 test: /\.css$/,

 use: ExtractTextPlugin.extract({

  use: ["css-loader", "postcss-loader"],

  fallback: "vue-style-loader"

 })

 },

 {

 test: /\.less$/,

 use: ExtractTextPlugin.extract({

  use: ["css-loader", "less-loader", "postcss-loader"],

  fallback: "vue-style-loader"

 })

 }

 ]

 },

 plugins: [

 //每个chunk头部添加hey,xc-cli!

 new webpack.BannerPlugin("hey,xc-cli"),

 //压缩js

 new webpack.optimize.UglifyJsPlugin({

 parallel: true,

 compress: {

 warnings: false

 }

 }),

 //分离入口引用的css,不内嵌到js bundle中!

 new ExtractTextPlugin({

 filename: assetsPath("css/[name].[contenthash].css"),

 allChunks: false

 }),

 //压缩css

 new OptimizeCSSPlugin(),

 //根据模块相对路径生成四位数hash值作为模块id

 new webpack.HashedModuleIdsPlugin(),

 //作用域提升,提升代码在浏览器执行速度

 new webpack.optimize.ModuleConcatenationPlugin(),

 //抽离公共模块,合成一个chunk,在最开始加载一次,便缓存使用,用于提升速度!

 // 1. 第三方库chunk

 new webpack.optimize.CommonsChunkPlugin({

 name: "vendor",

 minChunks: function(module) {

 //在node_modules的js文件!

 return (

  module.resource &&

  /\.js$/.test(module.resource) &&

  module.resource.indexOf(path.join(__dirname, "../node_modules")) === 0

 );

 }

 }),

 // 2. 缓存chunk

 new webpack.optimize.CommonsChunkPlugin({

 name: "manifest",

 minChunks: Infinity

 }),

 // 3.异步 公共chunk

 new webpack.optimize.CommonsChunkPlugin({

 name: "app",

 children: true,

 // (选择所有被选 chunks 的子 chunks)

 async: true,

 // (创建一个异步 公共chunk)

 minChunks: 3

 // (在提取之前需要至少三个子 chunk 共享这个模块)

 }),

 //将整个文件复制到构建输出指定目录下

 new CopyWebpackPlugin([

 {

 from: path.resolve(__dirname, "../static"),

 to: prodConfig.staticPath,

 ignore: [".*"]

 }

 ]),

 //生成html

 new HtmlWebpackPlugin({

 filename: path.resolve(__dirname, "../public/index.html"),

 template: "index.html",

 favicon: path.resolve(__dirname, "../favicon.ico"),

 //js资源插入位置,true表示插入到body元素底部

 inject: true,

 //压缩配置

 minify: {

 //删除Html注释

 removeComments: true,

 //去除空格

 collapseWhitespace: true,

 //去除属性引号

 removeAttributeQuotes: true

 },

 //根据依赖引入chunk

 chunksSortMode: "dependency"

 })

 ]

});

module.exports = prodConf;

登入後複製

十. 建立build/build.js

10.1 此檔案是專案打包服務,用來建構一個全量壓縮套件

10.2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

"use strict";

//node for loading

const ora = require("ora");

// rm-rf for node

const rm = require("rimraf");

//console for node

const chalk = require("chalk");

//path for node

const path = require("path");

//webpack

const webpack = require("webpack");

//webpack production setting

const config = require("./webpack.prod.conf");

//指定删除的文件

const rmFile = path.resolve(__dirname, "../public/static");

//build start loading

const spinner = ora("building for production...");

spinner.start();

//构建全量压缩包!

rm(rmFile, function(err) {

 if (err) throw err;

 webpack(config, function(err, stats) {

 spinner.stop();

 if (err) throw err;

 process.stdout.write(

 stats.toString({

 colors: true,

 modules: false,

 children: false,

 chunks: false,

 chunkModules: false

 }) + "\n\n"

 );

 if (stats.hasErrors()) {

 console.log(chalk.red(" Build failed with errors.\n"));

 process.exit(1);

 }

 console.log(chalk.cyan(" Build complete.\n"));

 console.log(

 chalk.yellow(

 " Tip: built files are meant to be served over an HTTP server.\n" +

  " Opening index.html over file:// won't work.\n"

 )

 );

 });

});

登入後複製

10.3 建立好以上檔案我們就可以透過npm run build來打包我們的專案文件並部署上線啦。

十一.大功告成!

透過以上步驟,一個spa版的vue鷹架就大功告成啦!

如果對一些細節不懂的可以留言或者上我的github查看

地址:https://github.com/webfansplz/xc-cli.git  (本地下載)

上面是我整理給大家的,希望今後對大家有幫助。

相關文章:

在AngularJS中有關監聽ng-repeat渲染問題

在微信小程式中如何實作流程進度樣式?

在vue中使用vue-cli如何建構helloWorld

#

以上是利用webpack搭建vue腳手架的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1672
14
CakePHP 教程
1428
52
Laravel 教程
1332
25
PHP教程
1277
29
C# 教程
1257
24
vue中怎麼用bootstrap vue中怎麼用bootstrap Apr 07, 2025 pm 11:33 PM

在 Vue.js 中使用 Bootstrap 分為五個步驟:安裝 Bootstrap。在 main.js 中導入 Bootstrap。直接在模板中使用 Bootstrap 組件。可選:自定義樣式。可選:使用插件。

vue怎麼給按鈕添加函數 vue怎麼給按鈕添加函數 Apr 08, 2025 am 08:51 AM

可以通過以下步驟為 Vue 按鈕添加函數:將 HTML 模板中的按鈕綁定到一個方法。在 Vue 實例中定義該方法並編寫函數邏輯。

vue中的watch怎麼用 vue中的watch怎麼用 Apr 07, 2025 pm 11:36 PM

Vue.js 中的 watch 選項允許開發者監聽特定數據的變化。當數據發生變化時,watch 會觸發一個回調函數,用於執行更新視圖或其他任務。其配置選項包括 immediate,用於指定是否立即執行回調,以及 deep,用於指定是否遞歸監聽對像或數組的更改。

vue返回上一頁的方法 vue返回上一頁的方法 Apr 07, 2025 pm 11:30 PM

Vue.js 返回上一頁有四種方法:$router.go(-1)$router.back()使用 &lt;router-link to=&quot;/&quot;&gt; 組件window.history.back(),方法選擇取決於場景。

vue多頁面開發是啥意思 vue多頁面開發是啥意思 Apr 07, 2025 pm 11:57 PM

Vue 多頁面開發是一種使用 Vue.js 框架構建應用程序的方法,其中應用程序被劃分為獨立的頁面:代碼維護性:將應用程序拆分為多個頁面可以使代碼更易於管理和維護。模塊化:每個頁面都可以作為獨立的模塊,便於重用和替換。路由簡單:頁面之間的導航可以通過簡單的路由配置來管理。 SEO 優化:每個頁面都有自己的 URL,這有助於搜索引擎優化。

React與Vue:Netflix使用哪個框架? React與Vue:Netflix使用哪個框架? Apr 14, 2025 am 12:19 AM

NetflixusesAcustomFrameworkcalled“ Gibbon” BuiltonReact,notReactorVuedIrectly.1)TeamSperience:selectBasedonFamiliarity.2)ProjectComplexity:vueforsimplerprojects:reactforforforproproject,reactforforforcompleplexones.3)cocatizationneedneeds:reactoffipicatizationneedneedneedneedneedneeds:reactoffersizationneedneedneedneedneeds:reactoffersizatization needefersmoreflexibleise.4)

vue遍歷怎麼用 vue遍歷怎麼用 Apr 07, 2025 pm 11:48 PM

Vue.js 遍歷數組和對像有三種常見方法:v-for 指令用於遍歷每個元素並渲染模板;v-bind 指令可與 v-for 一起使用,為每個元素動態設置屬性值;.map 方法可將數組元素轉換為新數組。

vue.js怎麼引用js文件 vue.js怎麼引用js文件 Apr 07, 2025 pm 11:27 PM

在 Vue.js 中引用 JS 文件的方法有三種:直接使用 &lt;script&gt; 標籤指定路徑;利用 mounted() 生命週期鉤子動態導入;通過 Vuex 狀態管理庫進行導入。

See all articles