搭建vue3項(xiàng)目以及按需引入element-ui框架組件全過程
場(chǎng)景:使用vue create腳手架快速搭建vue的項(xiàng)目
前提:需要安裝node.js和cnpm以及yarn
并且cnpm需要設(shè)置為淘寶鏡像,cnpm和yarn安裝教程網(wǎng)上很多可以自行搜索
1.使用dos命令安裝vue-cli腳手架
//這個(gè)是從鏡像源下載 cnpm install -g @vue/cli
查看安裝的版本(顯示版本號(hào)說明安裝成功)
vue --version
2.使用vue create命令搭建vue項(xiàng)目
1.cmd窗口跳到需要新建項(xiàng)目的文件夾下,使用vue create
//vuetest是我的項(xiàng)目名 vue create vue-element-plus
2.我這里選擇第三個(gè)Manually select features自定義選項(xiàng)操作并回車(至于第一個(gè)和第二個(gè)選項(xiàng)可以快速搭建帶eslint和babel的項(xiàng)目)
3.選擇配置項(xiàng)
我這里選擇了Babel、 TypeScript、Router、Vuex、Linter/Formatter三個(gè)選項(xiàng)(通過鍵盤上下鍵
移動(dòng),使用空格鍵
勾選),然后回車
>( ) Babel // 代碼編譯 ( ) TypeScript // ts ( ) Progressive Web App (PWA) Support // 支持漸進(jìn)式網(wǎng)頁應(yīng)用程序 ( ) Router // vue路由 ( ) Vuex // 狀態(tài)管理模式 ( ) CSS Pre-processors // css預(yù)處理 ( ) Linter / Formatter // 代碼風(fēng)格、格式校驗(yàn) ( ) Unit Testing // 單元測(cè)試 ( ) E2E Testing // 端對(duì)端測(cè)試
4.選擇vue的版本
我這里選擇第一個(gè)3.X,然后回車
5.選擇class風(fēng)格的component
這里輸入N
對(duì)比選y和N的區(qū)別,截圖如下選N:
選Y:
6.選擇 Use Babel alongside TypeScript
這里輸入Y
7.選擇router的模式
vue-router分為兩種模式
hash
history
**hash:** 特征: 1.hash會(huì)在瀏覽器路徑里帶#號(hào),比如http://locahost:8080/#/index 2.hash在瀏覽器改變路徑觸發(fā)頁面跳轉(zhuǎn),即前進(jìn)后退,但不會(huì)重新加載頁面。 3.hash傳參是基于url,如果要傳遞復(fù)雜的參數(shù)會(huì)有體積的限制 **history** 特征: 1.可以在url放參數(shù),而且也可以將數(shù)據(jù)存放在一個(gè)特定的對(duì)象中,其利用HTML5 History inteface中新增的pushState()和replaceState()方法(限制:history只支持IE8以上) 2.需要后臺(tái)配置支持,前端的 URL 必須和實(shí)際向后端發(fā)起請(qǐng)求的 URL 一致,如 http://www.test.com/user/id 如果后端缺少對(duì) /user/id 的路由處理,將返回 404 錯(cuò)誤。
我這里使用router路由的history模式,輸入Y,然后回車(如果使用hash,則輸入n)
8.代碼語法錯(cuò)誤檢查
我這里選擇ESLint + Standard config,這個(gè)是標(biāo)準(zhǔn)的,然后回車
9.選擇檢查代碼語法的時(shí)機(jī)
我這里選擇第一個(gè)Lint on save,然后回車
10.第三方配置文件存在的方式
我這里選擇第一個(gè)In dedicated config files,然后回車
11.是否保存本次配置為預(yù)設(shè)項(xiàng)目模板
我這里選擇N(也可以選擇Y,這樣下次可以直接使用該配置方案快速搭建項(xiàng)目),然后回車,則項(xiàng)目搭建成功
12.搭建成功的示例
13.打開項(xiàng)目安裝依賴
在終端輸入如下代碼,安裝依賴包
yarn install
14.啟動(dòng)項(xiàng)目
在終端輸入如下代碼,然后回車啟動(dòng)項(xiàng)目
yarn serve
放在瀏覽器預(yù)覽
15.安裝elementUI框架
在終端控制臺(tái)輸入如下安裝
yarn add element-plus
16.按需引入elementUI的組件在src\core文件夾下新建element.ts文件,代碼如下
import { ElConfigProvider, ElAlert, ElAside, ElAutocomplete, // ElAvatar, // ElBacktop, // ElBadge, // ElBreadcrumb, // ElBreadcrumbItem, // ElButtonGroup, // ElCalendar, ElCard, // ElCarousel, // ElCarouselItem, // ElCascader, // ElCascaderPanel, ElCheckbox, ElCheckboxButton, ElCheckboxGroup, // ElCollapse, // ElCollapseItem, // ElCollapseTransition, // ElColorPicker, ElContainer, // ElDatePicker, ElDialog, ElDivider, ElDrawer, ElDropdown, ElDropdownItem, ElDropdownMenu, // ElFooter, ElForm, ElFormItem, ElHeader, ElIcon, ElInputNumber, ElImage, ElMain, ElMenu, ElMenuItem, ElMenuItemGroup, ElOption, ElOptionGroup, // ElPageHeader, ElPagination, // ElPopconfirm, ElPopover, // ElPopper, // ElProgress, ElRadio, ElRadioButton, ElRadioGroup, // ElRate, ElCol, ElRow, // ElScrollbar, ElLink, // ElSlider, // ElStep, // ElSteps, ElSubMenu, ElSwitch, ElTabPane, ElTabs, ElTable, ElTableColumn, ElTag, // ElTimePicker, // ElTimeSelect, // ElTimeline, // ElTimelineItem, ElTooltip, ElTransfer, ElTree, ElUpload, // ElInfiniteScroll, // ElLoading, // ElMessage, // ElMessageBox, // ElNotification, ElColorPicker, ElDatePicker, ElDescriptions, ElDescriptionsItem, ElEmpty, } from 'element-plus' const components = [ ElConfigProvider, ElRadio, ElRadioButton, ElRadioGroup, ElCheckbox, ElCheckboxButton, ElCheckboxGroup, ElLink, ElCard, ElForm, ElFormItem, ElHeader, ElIcon, ElInputNumber, ElAside, ElContainer, ElMain, ElMenu, ElMenuItem, ElMenuItemGroup, ElSubMenu, ElDropdown, ElDropdownItem, ElDropdownMenu, ElTabPane, ElTabs, ElTable, ElTableColumn, ElPagination, ElTag, ElDialog, ElTree, ElOption, ElOptionGroup, ElCol, ElRow, ElColorPicker, ElDatePicker, ElSwitch, ElPopover, ElImage, ElDescriptions, ElDescriptionsItem, ElDivider, ElDrawer, ElTooltip, ElTransfer, ElUpload, ElAlert, ElEmpty, ElAutocomplete, ], options = { size: 'small', zIndex: 3000 } // eslint-disable-next-line const install = function ins(app: any): void { // if (install.installed) { return } for (let i = 0; i < components.length; i++) { app.component(components[i].name, components[i]) } app.config.globalProperties.$ELEMENT = options } const API = { install, } export default Object.assign(API, components)
在main.ts文件代碼添加如下
import { createApp } from 'vue' import App from './App.vue' import router from './router' import store from './store' import ElementPlus from '@/core/element' import 'element-plus/theme-chalk/index.css' const app = createApp(App) app.use(ElementPlus) app.use(store) app.use(router) app.mount('#app')
17.使用組件預(yù)覽在App.vue文件,代碼如下
<template> <ElConfigProvider :locale="locale"> <!-- <nav> <router-link to="/">Home</router-link> | <router-link to="/about">About</router-link> </nav> <router-view /> --> <el-table :data="list" border style="width: 66%" class="tableel12"> <el-table-column prop="tradeId" label="序號(hào)" width="180" /> <el-table-column prop="stockHolderId" label="股民id" width="180" /> <el-table-column prop="bankCardId" label="卡號(hào)" /> <el-table-column prop="addedMoney" label="交易金額" /> <el-table-column prop="state" label="狀態(tài)" /> <el-table-column prop="type" label="操作股票方式" /> <el-table-column label="重傳"> <template #default="scope"> <el-button type="primary" @click="update2(scope.row.tradeId, scope.row.state)">重傳</el-button> <!-- <el-button link type="primary" size="small">Edit</el-button> --> </template> </el-table-column> </el-table> </ElConfigProvider> </template> <script > import zhLocale from 'element-plus/lib/locale/lang/zh-cn' import { ref } from 'vue' export default { setup() { const locale=ref(zhLocale) return { locale, } }, } </script> <style> #app { font-family: Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; } nav { padding: 30px; } nav a { font-weight: bold; color: #2c3e50; } nav a.router-link-exact-active { color: #42b983; } </style>
效果圖如下:
注意點(diǎn):
1.我的npm版本是8.5.0 ,node版本是16.14.2 , yarn版本是1.22.18,vue-cli版本是5.0.8,cnpm版本是8.2.0
2.elementUI官網(wǎng):https://element-plus.gitee.io/zh-CN/guide/quickstart.html#%E6%8C%89%E9%9C%80%E5%AF%BC%E5%85%A5
3.代碼提交到gitee倉(cāng)庫:https://gitee.com/henrryhu/vue-element-plus
總結(jié)
到此這篇關(guān)于搭建vue3項(xiàng)目以及按需引入element-ui框架組件的文章就介紹到這了,更多相關(guān)搭建vue3按需引入element-ui組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue項(xiàng)目實(shí)現(xiàn)局部全屏完整代碼
最近需要做一個(gè)全屏功能,所以這里給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目實(shí)現(xiàn)局部全屏的相關(guān)資料,需要的朋友可以參考下2023-09-09vue中this.$router.go(-1)失效(路由改變了,界面未刷新)
本文主要介紹了vue中this.$router.go(-1)失效(路由改變了,界面未刷新),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12基于Vue實(shí)現(xiàn)可選擇不連續(xù)的時(shí)間范圍的日期選擇器
這篇文章主要為大家詳細(xì)介紹了如何基于Vue.js實(shí)現(xiàn)一個(gè)可選擇不連續(xù)的時(shí)間范圍的日期選擇器,文中的示例代碼簡(jiǎn)潔易懂,需要的可以參考一下2023-06-06vue項(xiàng)目中實(shí)現(xiàn)圖片預(yù)覽的公用組件功能
小編接到查看影像的功能需求,根據(jù)需求,多個(gè)組件需要用到查看影像的功能,所以考慮做一個(gè)公用組件,通過組件傳值的方法將查看影像文件的入?yún)鬟^去。下面小編通過實(shí)例代碼給大家分享vue項(xiàng)目中實(shí)現(xiàn)圖片預(yù)覽的公用組件功能,需要的朋友參考下吧2018-10-10React?Diff算法不采用Vue的雙端對(duì)比原因詳解
這篇文章主要介紹了React?Diff算法不采用Vue雙端對(duì)比算法原因詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07