最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3項(xiàng)目目錄結(jié)構(gòu)示例詳解

 更新時間:2023年02月03日 09:49:33   作者:仙說  
更好的了解項(xiàng)目的目錄結(jié)構(gòu),能更好的去開發(fā)項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于vue3項(xiàng)目目錄結(jié)構(gòu)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、vue3項(xiàng)目的目錄結(jié)構(gòu)詳解

  • node_modules:通過 npm install 下載安裝的項(xiàng)目依賴包
  • public:存放靜態(tài)資源公共資源,不會被壓縮合并
    • —3DModel:存放.glb3D模型
    • —favicon.ico:網(wǎng)站圖標(biāo)
    • —index.html:首頁入口.html文件
  • src:項(xiàng)目開發(fā)主要文件夾
    • —api
    • —assets:靜態(tài)文件,存放圖片
    • —components:存放組件
    • —store:與vuex相關(guān)
    • —styles:存放樣式
    • —utils
    • —views:界面組件
    • —App.vue:根組件
    • —main.js:入口文件
    • —router.js:存放路由,實(shí)現(xiàn)界面跳轉(zhuǎn)
  • .gitignore:用來配置那些文件不歸git管理
  • package.json:項(xiàng)目配置和包管理文件(項(xiàng)目依賴和技術(shù))
  • README.md:說明文檔,主要看項(xiàng)目運(yùn)行的命令
  • vue.config.js:項(xiàng)目配置信息:跨域proxy代理

二、部分主要文件詳解

1、index.html

<%= BASE_URL %>

<%= htmlWebpackPlugin.options.title %>

將vue實(shí)例掛載到id為#app的dom上

<!DOCTYPE html>
<html lang="">
<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">
  <link rel="icon" href="<%= BASE_URL %>favicon.ico" rel="external nofollow" >
  <link rel="stylesheet"  rel="external nofollow" >
  <title>
    <%= htmlWebpackPlugin.options.title %>
  </title>
</head>

<body>
  <noscript>
    <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
        Please enable it to continue.</strong>
  </noscript>
  <!-- 將vue實(shí)例掛載到id為#app的dom上 -->
  <div id="app"></div>
  <!-- built files will be auto injected -->
  <style>
   	/* 公共樣式可以寫在這里 */
  </style>
</body>
</html>

2、main.js(main.ts)

導(dǎo)入組件、路由等

vue3使用createApp這個api返回一個應(yīng)用實(shí)例,并且可以鏈?zhǔn)秸{(diào)用;這也是與vue2.0不同之處,vue2.0是通過new Vue() 來創(chuàng)建一個vue實(shí)例的

createApp(App).use(store).use(router).mount(‘#app’);

import {
  createApp
} from 'vue'
import App from './App.vue'
import router from './router'
import store from './store/index'
import * as Api from './api/index.js'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import 'dayjs/locale/zh-cn' //中文
import locale from 'element-plus/lib/locale/lang/zh-cn' //中文
import * as ElIcons from '@element-plus/icons-vue'
import permission from '@/constants/permission';
import UUID from 'vue-uuid';
import "vis/dist/vis.css";

var cesium = require('cesium/Cesium.js');
var widgets = require('cesium//Widgets/widgets.css');

// 創(chuàng)建實(shí)例
const app = createApp(App);

// 全局變量、屬性
app.config.globalProperties.$api = Api
app.config.globalProperties.Cesium = cesium
app.config.globalProperties.Widgets = widgets

// 添加widow對象
window.Cesium = cesium;

// 統(tǒng)一注冊Icon圖標(biāo)
for (const iconName in ElIcons) {
  app.component(iconName, ElIcons[iconName])
}

// 自定義指令實(shí)現(xiàn)權(quán)限控制
app.directive("permission", permission)

// app.use() 注冊全局組件
app.use(ElementPlus, {
  locale
});
app.use(store);
app.use(router);
app.use(UUID);

// 應(yīng)用實(shí)例掛載到#app中,一定要放在最后面
app.mount('#app');

3. package.json

a. scripts

可以使用npm run serve或yarn serve查看項(xiàng)目效果,就是因?yàn)橛衟ackage.json中的scripts起到了作用。

能使用vue-cli-service是因?yàn)関ue-cli自動安裝了cli-service這個工具

  • serve : 在開發(fā)時用于查看效果的命令,視頻中演示看一下效果
  • build : 打包打碼,一般用于生產(chǎn)環(huán)境中使用
  • lint : 檢查代碼中的編寫規(guī)范
  • b. dependencies 生產(chǎn)環(huán)境 devDependencies 開發(fā)環(huán)境

這兩個都是用來記錄安裝包信息的,

生產(chǎn)環(huán)境:就是代碼已經(jīng)上線,放到了正式的服務(wù)器上,公司開始運(yùn)營去賺錢的代碼。

開發(fā)環(huán)境: 作為一個程序員,每天作的事情都是在開發(fā)環(huán)境中,編寫代碼、測試代碼、修改 Bug。也就說這些代碼沒有上線。

dependencies下的包是生產(chǎn)環(huán)境中必須用到的,當(dāng)然開發(fā)環(huán)境也需要。devDependencies是只有開發(fā)環(huán)境中使用的,上線后這些包就沒用了,打包后也不會打包進(jìn)去的代碼。

  "name": "simulator",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "@element-plus/icons-vue": "^1.1.4",
    "axios": "^0.26.1",
    "cesium": "*",
    "core-js": "^3.8.3",
    "element-plus": "^2.1.2",
    "file-loader": "^6.2.0",
    "js-md5": "^0.7.3",
    "node-sass": "^7.0.1",
    "nprogress": "^0.2.0",
    "pdfjs-dist": "^2.4.456",
    "sass-loader": "^12.6.0",
    "url-loader": "^4.1.1",
    "vis": "^4.21.0-EOL",
    "vue": "^3.2.13",
    "vue-pdf": "^4.3.0",
    "vue-router": "^4.0.14",
    "vue-uuid": "^3.0.0",
    "vue3-pdf": "^4.2.6",
    "vuedraggable": "^4.1.0",
    "vuex": "^4.0.2"
  },
  "devDependencies": {
    "@babel/core": "^7.12.16",
    "@babel/eslint-parser": "^7.12.16",
    "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7",
    "@babel/plugin-proposal-optional-chaining": "^7.16.7",
    "@babel/plugin-proposal-private-methods": "^7.16.11",
    "@types/pdfjs-dist": "^2.10.378",
    "@vue/cli-plugin-babel": "~5.0.0",
    "@vue/cli-plugin-eslint": "~5.0.0",
    "@vue/cli-service": "~5.0.0",
    "copy-webpack-plugin": "^5.1.2",
    "eslint": "^7.32.0",
    "eslint-plugin-vue": "^8.0.3"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/vue3-essential",
      "eslint:recommended"
    ],
    "parserOptions": {
      "parser": "@babel/eslint-parser"
    },
    "rules": {
      "vue/multi-word-component-names": "off",
      "no-unused-vars": "off",
      "no-undef": "off"
    }
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not dead",
    "not ie 11"
  ]
}

三、其他說明

1. node版本錯誤

注意,不同的node版本,安裝依賴包可能會報(bào)錯

在vue3項(xiàng)目中,我使用的node版本是 v14.15.1

推薦nvm對不同的node版本進(jìn)行管理

nvm :node版本管理器

2. 如何調(diào)用全局屬性

如果在其他.vue文件中你使用的是<script setup>,你會發(fā)現(xiàn)直接使用this.$api會報(bào)錯,

這里提供一個新的api:getCurrentInstance 獲取vue當(dāng)前實(shí)例,掛載在全局上的東西都需要通過實(shí)例去拿

未親測過,感興趣的可以親測過告訴我可行性~

import { getCurrentInstance } from "vue";
// 拿到實(shí)例
const _this = getCurrentInstance ();
// 在實(shí)例中有個ctx上下文
_this.ctx.$api

我直接用的是<script>即vue2.0寫法編寫js代碼,則可以直接使用this.$api

3. vue文件中應(yīng)用vue3.0的api

vue3.0中用setup去包含了所有的鉤子等,所有使用的鉤子都需要提前導(dǎo)入

總結(jié)

到此這篇關(guān)于vue3項(xiàng)目目錄結(jié)構(gòu)的文章就介紹到這了,更多相關(guān)vue3項(xiàng)目目錄結(jié)構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue2中前端實(shí)現(xiàn)語音播報(bào)的詳細(xì)過程

    vue2中前端實(shí)現(xiàn)語音播報(bào)的詳細(xì)過程

    vue中語音播報(bào),目前本人寫的過程中,遇到了兩種情況,第一種是后端直接返回一個mp3的播放url,第二種就是播報(bào)的內(nèi)容需要前端自己拼接的,關(guān)于兩種方法,我都說一下如何實(shí)現(xiàn),感興趣的朋友一起看看吧
    2024-07-07
  • Vue富文本插件(quill-editor)的使用及說明

    Vue富文本插件(quill-editor)的使用及說明

    這篇文章主要介紹了Vue富文本插件(quill-editor)的使用及說明,具有很好的參考價(jià)值,希望對大家有所幫助。
    2023-02-02
  • Vue后臺實(shí)現(xiàn)點(diǎn)擊圖片放大功能的示例代碼

    Vue后臺實(shí)現(xiàn)點(diǎn)擊圖片放大功能的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Vue實(shí)現(xiàn)點(diǎn)擊圖片放大功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2022-12-12
  • 詳解Vue3中useLocalStorage的用法

    詳解Vue3中useLocalStorage的用法

    這篇文章主要為大家詳細(xì)介紹了Vue3中useLocalStorage用法的相關(guān)知識,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2023-10-10
  • vue2老項(xiàng)目vite升級改造過程記錄

    vue2老項(xiàng)目vite升級改造過程記錄

    目前vite主要默認(rèn)是支持給vue3使用的,并且如果使用官方的cli創(chuàng)建的項(xiàng)目一樣會默認(rèn)使用vue3去構(gòu)建項(xiàng)目,此時對于一些vue2的老項(xiàng)目就顯得不友好了,下面這篇文章主要給大家介紹了關(guān)于vue2老項(xiàng)目vite升級改造的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • vue 設(shè)置 input 為不可以編輯的實(shí)現(xiàn)方法

    vue 設(shè)置 input 為不可以編輯的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇vue 設(shè)置 input 為不可以編輯的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • vue 解決文本框被鍵盤遮住的問題

    vue 解決文本框被鍵盤遮住的問題

    今天小編就為大家分享一篇vue 解決文本框被鍵盤遮住的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • JavaScript實(shí)現(xiàn)簡單的圖片切換功能(實(shí)例代碼)

    JavaScript實(shí)現(xiàn)簡單的圖片切換功能(實(shí)例代碼)

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)簡單的圖片切換功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-04-04
  • Vue中封裝input組件的實(shí)例詳解

    Vue中封裝input組件的實(shí)例詳解

    這篇文章主要介紹了Vue中封裝input組件的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • Vue中設(shè)置登錄驗(yàn)證攔截功能的思路詳解

    Vue中設(shè)置登錄驗(yàn)證攔截功能的思路詳解

    今天在做vue和springboot交互的一個項(xiàng)目的時候,想要基于前端實(shí)現(xiàn)一些只有登錄驗(yàn)證之后才能訪問某些頁面的操作,所以在這里總結(jié)一下實(shí)現(xiàn)該功能的一個解決方案
    2021-10-10

最新評論

玛纳斯县| 乳山市| 辉南县| 葵青区| 旌德县| 大冶市| 黄大仙区| 汕尾市| 河北省| 满洲里市| 洞头县| 盐池县| 延津县| 仙居县| 芦溪县| 巴马| 平定县| 怀安县| 满洲里市| 普定县| 清水河县| 凤翔县| 南陵县| 澄城县| 冷水江市| 丹东市| 南京市| 台北县| 樟树市| 崇文区| 砀山县| 墨江| 长寿区| 邢台县| 临夏市| 泸州市| 衡南县| 合阳县| 莒南县| 和林格尔县| 堆龙德庆县|