1. 程式人生 > 實用技巧 >Vue之腳手架vue-cli相關配置

Vue之腳手架vue-cli相關配置

現在前端工程化開發是現在的一個流程趨勢,藉助一些工具幫助我們搭建一個舒適的開發環境,已經被提上日程

在這裡,介紹一種官方網站推薦的一種工具腳手架--Vue-cil

注意:Vue-cli是要求寫在ode.js版本是8+的一個環境當中

1.安裝腳手架

  • 全域性安裝
    •   npm i -g @vue/cli
    • 或者是通過yarn global add vue/cli
  • 安裝結束後,可以通過vue -V來檢測安裝是否成功,並且會得到安裝的一個版本

2.通過腳手架建立一個專案

  • vue create .(通過 . 可以安裝到當前路徑,也就可以指定安裝的一個檔名)
    • 然後根據終端給出的提示,按照自己的需求,通過上下鍵來控制游標上下移動,空格來控制是否選中來進行vue-cli的一個安裝配置
    • 配置完成後,會在選中的資料夾中建立以下檔案

3.eslint語法

  • vue-cli中會使用一種編寫程式碼的程式碼規範,一旦書寫規範不正確,會在頁面中報錯,如果不習慣使用,可以在vue.config.js中進行關閉使用
  • 首先在選中的資料夾中建立一個vue.config.js檔案
module.exports = {
    devServer: {
        overlay: {
          warnings: false,
          errors: false
        }
    },
    lintOnSave:false //直接關閉eslint檢查
}

4.alias別名設定

  • 在我們編寫檔案路徑的時候,往往會頭疼於../到哪,./到哪等,vue-cli中提供了一個符號'@' ,它代表的是建立的檔案中的src資料夾,所以就比如像訪問components中的元件的時候就可以直接@components了
  • 通過上面講述,發現提供了@符,還是會覺得麻煩,那我們就可以在vue.config.js檔案中進行一個別名配置了
configureWebpack: {
    resolve: {
        alias: {
            'assets': '@/assets',
            'con': '@/components',
            
'views': '@/views', } } }
  • 其中con就代表了@/components了,比如上面的我們要訪問其餘元件需要@components/....,現在只需要con/....

5.Vetur

 比如用的編輯器如果是vscode的話,我們點開生成的App.vue檔案會發現,整篇文件沒有一點程式碼高亮,這在程式設計師眼前可是忍不了的存在,所以此時我們就需要用到vscode給我們提供的一個外掛了——Vetur

將它安裝好後,就會發現,真香,程式碼效果一眼便知。

6.單檔案元件

官方文件將.vue檔案命名為單檔案元件,是由template,script,style組成,所以我們每建立一個.vue檔案就需要重新寫一遍這些標籤,都是重複程式碼,所以我們可以進行一個自動補齊配置

流程

  • 點選檔案進入首選項
  • 點選使用者片段
  • 點選新建全域性程式碼片段檔案,命名為vue.json
  • 進入後把我們不需要的刪了,就可以書寫我們的模板了,把自己想自動生成的,寫入這個檔案
{
    "Print to console": {
            "prefix": "vue",
            "body": [
                    "<!-- $1 -->",
                    "<template>",
                    "<div class='$2'>$5</div>",
                    "</template>",
                    "",
                    "<script>",
                    "//這裡可以匯入其他檔案(比如:元件,工具js,第三方外掛js,json檔案,圖片檔案等等)",
                    "//例如:import 《元件名稱》 from '《元件路徑》';",
                    "",
                    "export default {",
                    "//import引入的元件需要注入到物件中才能使用",
                    "components: {},",
                    "data() {",
                    "//這裡存放資料",
                    "return {",
                    "",
                    "};",
                    "},",
                    "//監聽屬性 類似於data概念",
                    "computed: {},",
                    "//監控data中的資料變化",
                    "watch: {},",
                    "//方法集合",
                    "methods: {",
                    "",
                    "},",
                    "//生命週期 - 建立完成(可以訪問當前this例項)",
                    "created() {",
                    "",
                    "},",
                    "//生命週期 - 掛載完成(可以訪問DOM元素)",
                    "mounted() {",
                    "",
                    "},",
                    "beforeCreate() {}, //生命週期 - 建立之前",
                    "beforeMount() {}, //生命週期 - 掛載之前",
                    "beforeUpdate() {}, //生命週期 - 更新之前",
                    "updated() {}, //生命週期 - 更新之後",
                    "beforeDestroy() {}, //生命週期 - 銷燬之前",
                    "destroyed() {}, //生命週期 - 銷燬完成",
                    "activated() {}, //如果頁面有keep-alive快取功能,這個函式會觸發",
                    "}",
                    "</script>",
                    "<style lang='scss' scoped>",
                    "//@import url($3); 引入公共css類",
                    "$4",
                    "</style>"
            ],
            "description": "Log output to console"
    }
}
  • prefixd 後面跟的是我們輸入的一個快捷短語,在這裡我設定成vue,也可以根據自己喜好設定,此時,我們建立.vue檔案的時候,就可以直接輸入vue然後按下回車,我們縮寫好的模板就生成好了
<!--  -->
<template>
<div class=''></div>
</template>

<script>
//這裡可以匯入其他檔案(比如:元件,工具js,第三方外掛js,json檔案,圖片檔案等等)
//例如:import 《元件名稱》 from '《元件路徑》';

export default {
//import引入的元件需要注入到物件中才能使用
components: {},
data() {
//這裡存放資料
return {

};
},
//監聽屬性 類似於data概念
computed: {},
//監控data中的資料變化
watch: {},
//方法集合
methods: {

},
//生命週期 - 建立完成(可以訪問當前this例項)
created() {

},
//生命週期 - 掛載完成(可以訪問DOM元素)
mounted() {

},
beforeCreate() {}, //生命週期 - 建立之前
beforeMount() {}, //生命週期 - 掛載之前
beforeUpdate() {}, //生命週期 - 更新之前
updated() {}, //生命週期 - 更新之後
beforeDestroy() {}, //生命週期 - 銷燬之前
destroyed() {}, //生命週期 - 銷燬完成
activated() {}, //如果頁面有keep-alive快取功能,這個函式會觸發
}
</script>
<style lang='scss' scoped>
//@import url(); 引入公共css類

</style>

7.資料請求的跨域問題

  • 我們在訪問本地檔案的時候是遇不到跨域問題的
  • 當我們需要請求一個線上的地址介面的時候,顯然,我們會報錯,因為已經違背了瀏覽器的同源策略,我們可以直接通過後端來進行CORS的配置來解決跨域問題,也可以通過前端代理伺服器的方式來進行
  • proxy代理配置

    • 需要將以下程式碼寫入vue.config.js配置檔案中
devServer: {
    open:true,//自動開啟瀏覽器
    port:8000,//隨便更改埠號
    proxy: {//進行配置代理項,解決前端瀏覽器跨域的問題
      // 檢索遇到/api的時候進行的操作
      '/api': {
        target:'https://m.maoyan.com',// 目標請求的域名地址
        changeOrigin:true,            //是否改變
        pathRewrite: {                //重寫地址
          '^/api': ''
        }
      }
    }
  }

便可以完成代理伺服器的一個配置

  • 我們對資料的一個非同步請求,可以在生命週期的created鉤子函式中完成,在這裡我們使用axios方法來進行
// 引入axios
import axios from "axios"
created(){
  axios.get("/api/ajax/filterCinemas?ci=10&optimus_uuid=C65FF030043711EAA90DB72AF81017842766AFA17B0B4FC182E45BB02A3963B2&optimus_risk_level=71&optimus_code=10")     .then(res=>{     console.log('res===>',res)   })
}

這時,我們也就拿到了我們要請求的資料

以上,就是我對vue-cli腳手架初步使用的一些配置介紹,若有出入,歡迎指出,立馬改正