Vue一、概念简介以及vue-cli脚手架初始化vue项目

vue 官方文档
vue-cli 官方文档
vue 参考文章
vue 完整项目地址

一、用vue-cli脚手架快速创建一个vue项目

1、概念简介

vue-cli 简单来说就是一个快速构建vue项目的脚手架工具,大大降低了webpack的使用难度,支持热更新,有webpack-dev-server的支持,相当于搭了个测试环境,将重心放在了开发上,而不必花大量精力去纠结配置的问题。

2、安装vue-cli

在新版本中,vue-cli的包名称由 vue-cli改成了@vue/cli。 如果你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你需要先通过npm uninstall vue-cli -gyarn global remove vue-cli 卸载它。

可以使用下列任一命令在cmd中安装这个新的包:

npm install -g @vue/cli
# OR
yarn global add @vue/cli

安装完成之后输入 vue -V(注意这里是大写的“V”)或者vue --version来检测目前的版本。

之后
我们也可以在cmd(命令提示符)中输入vue ui图形化界面来创建和管理项目

3、创建新项目

vue create 项目名

(1)默认型

· 在输出上面命令时,会让你选择默认(default)还是手动(Manually)

· 先是默认的,一路回车后的项目目录如下:

(2)手动型

· 按一下 ↓ 键选择 Manually 手动型

·选择自己常用的格式,按 空格键 是选择单个,a 键 是全选。

· vue-router 默认 hash 模式,如果选择yes会使用history模式

· 下一步询问你安装哪一种 CSS 预处理语言

· 这个是问你选择哪个自动化代码格式化检测,

· 第一个是保存就检测,第二个是 fix 和 commit 的时候检查。

· 选择单元测试解决方案,Mocha是流行的JavaScript测试框架之一,通过它添加和运行测试,从而保证代码质量,chai 是断言库,我两个都选择了。

· 下边问:babel, postcss, eslint 这些配置文件放哪?
第一个是:放独立文件放置
第二个是:放package.json里

· 下边意思是是否把以上配置保存为未来项目的预配置(就是下次创建项目时,可以选择刚刚配置好的配置,不用再重复一遍),最后是预配置的名字。

· 在创建项目时就会出现你配置好的名字

4、启动新项目

!!注意启动项目不能在有中文的目录下

// 1. 进入项目
cd 项目名 

// 2. 安装项目依赖
npm install

// 3. 启动
npm run serve

· cmd中出现下列内容表示启动成功

· 在浏览器中请求 http://localhost:8080/

· 文件目录

这样一个用vue-cli脚手架创建的项目就创建成功了

·有人可能会奇怪npm run build命令是干啥的

运行之后的命令符

运行之后生成的文件夹

简单来说,npm run build就是一个打包命令,将复杂的vue项目打包成一个简单的dist静态资源文件夹,文件夹中的index.html是入口文件,想要把咱的项目放到服务器上给其他人看,当然把整个vue项目放上去用pm2运行也可以,最好的办法是打包放到服务器上去,用nginx去配置它。

5、vue-cli 2.X 与vue-cli 3.0以上创建的版本的区别

(1)相比 vue-cli 2.X 创建的目录,vue-cli 3.0 创建的目录看不见 webpack 的配置

(2)启动命令行由:

npm run dev 或者 npm start
改变为
npm run serve

(3)安装过程也发生了一些变化,配置可以保存,下次可以再用

(4)手动配置 webpack:在根目录下新建一个 vue.config.js 文件,进行你的配置 :

const path = require('path');

module.exports = {
    // 基本路径
    baseUrl: './',
    // 输出文件目录
    outputDir: 'dist',
    // eslint-loader 是否在保存的时候检查
    lintOnSave: true,
    // webpack配置
    // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
    chainWebpack: () => {},
    configureWebpack: (config) => {
        if (process.env.NODE_ENV === 'production') {
            // 为生产环境修改配置...
            config.mode = 'production';
        } else {
            // 为开发环境修改配置...
            config.mode = 'development';
        }

        Object.assign(config, {
            // 开发生产共同配置
            resolve: {
                alias: {
                    '@': path.resolve(__dirname, './src'),
                    '@c': path.resolve(__dirname, './src/components')
                }
            }
        });
    },
    // 生产环境是否生成 sourceMap 文件
    productionSourceMap: true,
    // css相关配置
    css: {
        // 是否使用css分离插件 ExtractTextPlugin
        extract: true,
        // 开启 CSS source maps?
        sourceMap: false,
        // css预设器配置项
        loaderOptions: {},
        // 启用 CSS modules for all css / pre-processor files.
        modules: false
    },
    // use thread-loader for babel & TS in production build
    // enabled by default if the machine has more than 1 cores
    parallel: require('os').cpus().length > 1,
    // PWA 插件相关配置
    // see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
    pwa: {},
    // webpack-dev-server 相关配置
    devServer: {
        open: process.platform === 'darwin',
        host: '0.0.0.0',
        port: 8080,
        https: false,
        hotOnly: false,
        // proxy: {
        //     // 设置代理
        //     // proxy all requests starting with /api to jsonplaceholder
        //     'http://localhost:8080/': {
        //         target: 'http://baidu.com:8080', //真实请求的目标地址
        //         changeOrigin: true,
        //         pathRewrite: {
        //             '^http://localhost:8080/': ''
        //         }
        //     }
        // },
        before: (app) => {}
    },
    // 第三方插件配置
    pluginOptions: {
        // ...
    }
};

(5)当然如果你不想用3.0的话,还是可以拉取 2.x 模板 (旧版本),参考官网:

Vue CLI >= 3 和旧版使用了相同的 vue 命令,所以 Vue CLI 2 (vue-cli) 被覆盖了。如果你仍然需要使用旧版本的 vue init 功能,你可以全局安装一个桥接工具:

npm install -g @vue/cli-init
# `vue init` 的运行效果将会跟 `vue-cli@2.x` 相同
vue init webpack my-project

二、vue项目里面到底是些啥?该如何理解?

(1) 其实我感觉最重要的实操部分就是src文件夹中的文件了,其余部分就是为了项目更方便管理运行下去的配置文件。


src中文件的介绍

(2) App.vue/main.js/router文件夹中的router.js联系


三者联系介绍

不得不说vue的奥妙之处 ,可能一开始有些难理解,但只要理解了会非常好用,轻便。

main.js中,比如你想引一个element的ui库,你可以在这里面配置
这是element-ui的官方地址

main.js中

有的人生成的main.js可能不一样,但作用其实是一样的
因为在Vue构造函数时,需要配置一个el属性,如果没有没有el属性时,可以使用.$mount('#app')进行挂载。


main.js

App.vue中,我觉得最重要的就是<router-view />

App.vue

有人可能又要问,首页的话我想显示其他内容,并不想在App.vue中写过多的东西,那如何处理呢?
只需要在router文件中配置好就ok啦!只要让访问 / 路由的人跳转到首页就可以啦,下面是我的一个例子,在home.vue中是各个组件的拼接的导航栏,index.vue是主页:


router.js

这里关于路由我可能讲的不太详细,之后会在介绍路由的时候详细的讲。这就是大概的项目框架的样子。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容