从零开始,@Vue/cli搭建项目以及初始化工作-超全建议收藏

介绍

以Vue移动端为例,搭建Vue的Webpack项目。

一,准备

  • 安装Node.js
    – (Node.js附带npm包管理工具),在Node官网下载安装即可。
    在这里插入图片描述
    安装成功的标志
    在这里插入图片描述

  • 安装Vue cli脚手架工具
    – 用途:用于搭建Vue的webpack项目
    – 关于:Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。 如果你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你需要先通过 npm uninstall vue-cli -g 或 yarn global remove vue-cli 卸载它。新版的脚手架有可以通过UI界面操作来创建管理Vue项目。
    – 更多详情请自行查看Vue Cli官方文档

– 安装

//全局安装
npm install -g @vue/cli

//查看是否安装成功
vue --version

二,项目构建

以@Vue/cli 使用UI界面创建为例:

//打开ui操作界面
vue ui

这里包管理工具我选择,npm
在这里插入图片描述
这里我选择默认
在这里插入图片描述

三,项目配置

1,webpack打包的配置(开发/生产 环境)

- 开发环境打包

在这里插入图片描述
该Vue Cli 构建的webpack项目 默认使用serve进行开发环境的打包。
因此我们通过:

//终端输入
npm run serve

在这里插入图片描述
输入地址,查看是否打包成功
在这里插入图片描述
我们甚至可以设置 --open这个参数,以至于打包完成自动打开浏览器。

Usage: serve [options] [entry]

在开发环境模式下零配置为 .js 或 .vue 文件启动一个服务器


Options:

  -o, --open  打开浏览器
  -c, --copy  将本地 URL 复制到剪切板
  -h, --help  输出用法信息

值得注意的是该插件还拥有热部署的功能,当我们修改项目种的文件并进行保存,就能实时的预览修改后的内容,而无需手动刷新浏览器,这样一来就能够大大方便开发者在开发过程中进行调试和预览。
在这里插入图片描述

- 生产环境打包

生产环境的打包使用的是build。

//终端输入
npm run build

打包完成之后,我们可以发现项目多了一个dist文件,这里的文件是存放在磁盘中的,区别:打包到生产环境的时候是存放到运行内存的。
在这里插入图片描述
注意:这是如果直接打开dist的index.html是看不到页面的。
这是我们得使用:

//终端输入
serve dist

在这里插入图片描述
此时就可以预览到打包到本地的页面了。
在这里插入图片描述
从下面介绍可以了解到,dist目录下的文件需要挂到服务器上进行预览。
在这里插入图片描述
感兴趣的小伙伴还可以试下通过:

//终端输入
//安装http-server
npm install http-serve -g
//运行
http-server dist

在这里插入图片描述

2,安装stylus

//终端输入
npm install stylus stylus-loader --save-dev

配置单文件组件vue的初始代码模板
在这里插入图片描述
在这里插入图片描述
这样创建vue文件的时候就无需手动去指定编写样式的的语法了。

3,文件结构

既然要打造文件结构,干脆把src下面的所有文件都删掉,重新构建的过程会让你更加深入这个文件结构。

图示

在这里插入图片描述

– 首先我们自己来写一下:main.js文件和 App.vue 这两个文件尤为重要因此单独进行阐述。

App.vue

//App.vue
<template>
  <div id="app">
    app
  </div>
</template>

<script>
export default {
  name: "App"
}
</script>

<style lang="stylus" rel="stylesheet/stylus">

</style>

main.js

Vue渲染模板方式一:

//main.js
/*
入口文件
*/
import Vue from  'vue'
import App from "@/App";

export default new Vue({
    el:'#app',
    components:{
        App
    },
    template:'<APP/>'
})

在本次项目构建中,使用template属性来渲染App组件的方式将不被允许,报错信息:
在这里插入图片描述
还记得我们使用Vue Cli 构建项目的时候使用的UI管理界面吗?我们去那里看看是否有相关的配置设置。

启动UI服务在这里插入图片描述
启用运行时编译即可解决上述问题
在这里插入图片描述
感兴趣的伙伴还可以继续尝试一下通过以下两种方式来解决,即使不启用运行时编译。
Vue渲染模板方式二:

/*
入口文件
*/
import Vue from  'vue'
import App from "@/App";

export default new Vue({
    el:'#app',
    render:function (createElement){
        return createElement(App);
    }
})

Vue渲染模板方式三:

/*
入口文件
*/
import Vue from  'vue'
import App from "@/App";

export default new Vue({
    render:function (createElement){
        return createElement(App);
    }
}).$mount("#app");

以上三种方式,结合Vue生命周期图来看,你会豁然开朗。
在这里插入图片描述

4,iconfont阿里巴巴矢量图标库

链接:阿里巴巴矢量图标库

此处以font class 的方式来使用icofont
在这里插入图片描述
把相关文件放置在common/icon下
在这里插入图片描述
在main.js进行引入(则全局都可以使用了)

/*
入口文件
*/
import Vue from  'vue'
import App from "@/App";
import "./common/icon/iconfont.css"      // <-此处引入 
export default new Vue({
    render:function (createElement){
        return createElement(App);
    }
}).$mount("#app");

如何使用在下载下来的文件中有相关演示,此处不再赘述。
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021041123435863.png

5,初始化reset.css

用于初始化css
reset.css

/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}
.ellipsis{
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

在main.js进行引入

/*
入口文件
*/
import Vue from  'vue'
import App from "@/App";
import "./common/icon/iconfont.css"
import "./common/style/css/reset.css"  // <-此处引入
export default new Vue({
    render:function (createElement){
        return createElement(App);
    }
}).$mount("#app");

6,移动端ViewPort的配置,移动端点击事件300ms延迟的解决

安装

npm i fastclick

引入

/*
入口文件
*/
import Vue from  'vue'
import App from "@/App";
import "./common/icon/iconfont.css"
import "./common/style/css/reset.css"
import  FastClick  from  'fastclick'	 // <- 此处引入
FastClick.attach(document.body)        	// <- 此处引入
export default new Vue({
    render:function (createElement){
        return createElement(App);
    }
}).$mount("#app");

7,路由(Vue-Router)

安装

npm install vue-router

使用
在这里插入图片描述
index.js
引入了已下两个组件页面
在这里插入图片描述

//index.js
import Vue from "vue"
import VueRouter from "vue-router";
import Home from "../pages/Home/Home"; //组件页面
import Other from "../pages/Other/Other"; //组件页面
Vue.use(VueRouter)
export default new VueRouter({
    routes:[
        {
            path:'/',
            component:Home
        },
        {
            path:'/other',
            component:Other
        }
    ]
})

main.js

/*
入口文件
*/
import Vue from  'vue'
import App from "@/App";
import "./common/icon/iconfont.css"
import "./common/style/css/reset.css"
import router from "./router" // <- 此处引入
import  FastClick  from  'fastclick'
FastClick.attach(document.body)
export default new Vue({
    render:function (createElement){
        return createElement(App);
    },
    router:router //<-此处使用
}).$mount("#app");

在这里插入图片描述
App.vue
使用router-view,则根据地址栏的内容进行页面切换

<template>
  <div id="app">
    <router-view></router-view> 
  </div>
</template>

<script>
export default {
  name: "App"
}
</script>

<style lang="stylus" rel="stylesheet/stylus">

</style>

效果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jaywei.online

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值