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脚手架初步使用的一些配置介绍,若有出入,欢迎指出,立马改正

 

posted on 2020-08-17 21:00  Huskie!  阅读(391)  评论(0编辑  收藏  举报