艾凡休斯的開發筆記
Sign in Subscribe

ivanlu

很基本的Nuxt3教學,包含Eslint導入, 之後想到再補充~哈哈

開始使用Nuxt3

Nuxt是Vue的懶人版,套件都幫你弄好了,基本上不太需要裝其他東西

作者之前都使用Nuxt2開發,但學習是不能停止的,不然會腦袋會死掉,哈哈!

本次使用 Nuxt3來進行開發, Nuxt3官方文件 、順便介紹Eslint除錯

Nuxt3優勢

  • 導入Vite,在網頁Build打包上更快!
  • 支援Vue3
  • plugins的套件能自動導入,不用再去nuxt.config.js自己搞
  • 等一堆新東西

Nuxt分為SSR(Server-Side Rendering)和SPA(Single Page Application)兩種模式

優缺點網路上很多,咱們就使用SPA進行建置!!

本篇不會串到後端,因此先做簡單的前端建置

必備工具

編譯器: Visual Studio Code ( VSCODE)
Node.js環境:16.20.0 Gallium ( url),建議使用16.xx.x版本,避免踩坑
chrome套件: Vue.js devtools

1. 安裝Nuxt3 ( 官方說明)

#先創建初始化 package.json
npx nuxi init first_nuxt #<project-name>
#執行完後會創建一個資料夾,裡面存放必備的檔案
cd first_nuxt
#或者VSCode重新選擇新路徑

另外要安裝開發用的vscode套件,基本上裝volar即可(裝兩個是因為有使用nuxt2)

2. Nuxt3的npm包安裝

  • 先將 ssr模式關掉,這個用不到
  • 把nuxt.config.ts,改成nuxt.config.js(作者習慣,哈!)
#導入pacakge.json包
npm i

3. Nuxt3啟動

直接輸入 npm run dev 執行開發模式看看結果

#開發模式
npm run dev

#發布模式(正式上線用)
npm run build #打包
npm run start #執行

Nuxt3- Page (Route路由)

可以看到app.vue是nuxt3的主頁,但我們要改成路由,方便管理

先把app.vue砍了,直接上page就好

<NuxtWelcome /> 這個文件索引到nuxt3的components

Ctrl+S存檔後,網頁就會變了!!

index.vue = > 主頁 "/"

e.g. 192.168.0.10:3000/

直接在pages上新增.vue,並在url上加路由名稱就可以指向該page,非常方便!

e.g. pages新增haha.vue -> 192.168.0.10:3000/haha

切換路由頁面可以使用VUE的router.push,簡短且方便

<button @click="$router.push('/yourPage')">Mybutton</button>

Nuxt3- Components

如果vue想新增一些小組件,不希望塞太多在pages,不好管理,需要經常重複調用的UI或者單純顯示的組件等等

可以直接新增components資料夾,裡面塞vue組件

e.g.
mylittlebtn #這是錯的
Mylittlebtn #第一碼要大寫就對了
以前的版本會卡,現在好像不用

Nuxt3- Layout布局

在Nuxt的 life cycle,layout基本上可以認為是全域模板,每次切換頁面的渲染都會經過它,因此我們可以在這裡做一些功能,e.g. 登入驗證(在middleware處理也可)、整體布局排版等等

首先創建在根目錄一個layouts的資料夾,並新增default.vue,<NuxtPage>代表page資料夾裡面所有的.vue,不使用<NuxtPage>,那麼會看不到page的內容。

Nuxt3- Vue.js Devtools

在網頁開發上,會需要查看變數到底在幹嘛,而Vue支援從網頁上查看變數

  • 從網頁看,需要在.vue打 {{ myvalue }}
  • 從Chome 用F12打開管理員後,選vue就可以看到整排的變數

變數一多,總不能用console.log或{{value}} 一筆一筆看吧??

基本上Nuxt3基本教學就到這裡了~~


Nuxt3-導入 ESlint

想當然沒人想要把程式寫怪怪的,或者排版亂排,傷眼睛,母湯喔
這邊推薦使用js除錯神器ESlint
因為作者懶得解釋說明,所以直接貼現成的給各位參考
裡面包含babel、prettier、ESlint等設定,反正我懶了,哈,請自己Google

1.把原有的json替換掉,如果你懂,那就自己抓要的

# package.json
{
  "name": "nuxt-app",
  "private": true,
  "scripts": {
    "build": "nuxt build",
    "dev": "nuxt dev",
    "generate": "nuxt generate",
    "preview": "nuxt preview",
    "postinstall": "nuxt prepare"
  },
  "devDependencies": {
    "@types/node": "^18",
    "nuxt": "^3.4.3",
    "@babel/core": "^7.21.4",
    "@babel/eslint-parser": "^7.21.3",
    "@babel/preset-env": "^7.21.4",
    "@nuxtjs/eslint-config": "^12.0.0",
    "@nuxtjs/eslint-config-typescript": "^12.0.0",
    "@nuxtjs/eslint-module": "^4.0.2",
    "@vueuse/core": "^9.13.0",
    "@vueuse/nuxt": "^9.13.0",
    "babel-eslint": "^10.1.0",
    "eslint": "^8.36.0",
    "eslint-plugin-nuxt": "^4.0.0",
    "eslint-plugin-vue": "^9.10.0",
    "iconv-lite": "^0.6.3",
    "nodemon": "^2.0.22",
    "prettier": "^2.8.7"
  },
  "dependencies": {
  }
}

2.新增. editorconfig (簡易版-懂就不要複製我的)

這是規定程式編碼樣式和縮排阿,等等

# editorconfig.org
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

3.新增 .eslintrc.js (簡易版-懂就不要複製我的)

Eslint會檢查你的code寫法正不正常,不然會被打,叫廠長來也沒用

module.exports = {
  root: true,
  env: {
    browser: true,
    node: true
  },
  parserOptions: {
    parser: '@babel/eslint-parser',
    requireConfigFile: false
  },
  extends: [
    '@nuxtjs',
    'plugin:nuxt/recommended'
  ],
  // add your custom rules here
  rules: {
    'nuxt/no-cjs-in-config': 'off',
    'vue/comment-directive': 'off',
    eqeqeq: 'off'
  }
}

4. Eslint效果

可以看到這邊會有很多違反的寫法,一般我們使用Fix all auto-fixable problems

可以看到縮牌後會有一段提醒你這個不行,是因為VUE的template至少要用一個容器包起來,我們用<div>包起來後就正常了~~

當然,這也是大坑,光是條件規則就看不完了~~

5. Eslint-快捷鍵

如果每次都要用滑鼠,那豈不是會失智!?

  • File-> Preferences -> Keyboard Shortcuts
  • 在搜尋欄上打fix,會跳出eslint fix all的快捷鍵,設定好後就可以了


下一篇,Nuxt3導入Element - Plus,並實現暗黑模式,很炫!

玻璃钢生产厂家广州仿铜玻璃钢雕塑厂家甘南玻璃钢植物雕塑设计湘潭怀化玻璃钢雕塑供应艺术商场美陈采购常用玻璃钢花盆怎么样信阳玻璃钢雕塑雕刻价格北京商场美陈多少钱东安玻璃钢花盆花器郑州玻璃钢雕塑报价商场的8种美陈主题上海节庆商场美陈哪里有玻璃钢商场橱窗美陈石家庄市玻璃钢雕塑雕刻公司海西玻璃钢花盆常州商场美陈布置陵水玻璃钢卡通人物雕塑张掖玻璃钢动物雕塑价格吉林户外玻璃钢雕塑哪家便宜湖南玻璃钢面具雕塑河源玻璃钢雕塑图片新密景观标识玻璃钢雕塑河北保定玻璃钢雕塑加工厂家精美玻璃钢马雕塑双层玻璃钢花盆大口鄂尔多斯雕塑玻璃钢卡通玻璃钢红色题材雕塑哪里有龙岗玻璃钢雕塑造型合肥玻璃钢雕塑景观设计奥体元旦商场美陈深圳特色商场美陈销售公司香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化