vue.js项目实战运用篇之抖音视频APP-第二节:项目基础架构搭建

Posted enjsky.G

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue.js项目实战运用篇之抖音视频APP-第二节:项目基础架构搭建相关的知识,希望对你有一定的参考价值。

【温馨提示】:若想了解更多关于本次项目实战内容,可转至vue.js项目实战运用篇之抖音视频APP-项目规划中进一步了解项目规划。

【项目地址】
项目采用Git进行管理,最终项目将会发布到GitHub中,感兴趣的小伙伴们可以一起学习,共同完善本项目。
项目地址:GitHub


第二节:项目基础架构搭建

创建项目

1.使用vue-cli 创建项目,命令如下:
【命令】:vue create drifting-cloud-app

vue create drifting-cloud-app

【解析】:drifting-cloud-app:为项目名称
回车(Enter)会提示选取项目所需特性,如下图:
在这里插入图片描述
这里选择【Manually select features】手动选择所需特性。
【温馨提示】这里按上下键移动选项,回车(Enter)确定选择。
接下来会提示选择所需配置,如下图:
在这里插入图片描述
本次项目我们选择Check the features needed for your project: Choose Vue version、Babel、Router、Vuex、CSS Pre-processors、Linter;等六个配置特性。
【温馨提示】这里按上下键移动选项,空格键选中选项,回车(Enter)确定选择执行。
依次会提示如下配置信息,如下图:
在这里插入图片描述
配置完成后,按回车(Enter)执行项目创建。当提示输入如下命令进入项目时,即为创建成功,如下图:
在这里插入图片描述
2.创建完成后,进入项目,执行如下命令
【命令】cd app

cd app

3.启动项目
【命令】:npm run serve

npm run serve

项目启动成功后提示如下:
在这里插入图片描述
查看项目
本地地址:http://localhost:8080/
网络地址:http://192.168.2.43:8080/
效果如下:
在这里插入图片描述

配置所需特性文件

配置第三方UI组件

本次项目使用VantUI组件进行UI架构,如需了解具体内容则转至官方文档进行学习拓展。
Vant官方文档:官方文档
1.Vant组件安装
执行如下命令进行组件安装,命令如下:
【命令】npm i vant -S

npm i vant -S

2.安装Vant配置插件
【命令】:npm i babel-plugin-import -D

npm i babel-plugin-import -D

3.配置 babel.config.js文件
【配置解析】进行如下配置,在组件内使用时,只需要引入组件就可以了,不需要再引入样式。

module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset',
  ],
  "plugins": [//在组件内使用时,只需要引入组件就可以了,不需要再引入样式。
    ["import", {
      "libraryName": "vant",
      "libraryDirectory": "es",
      "style": true
    }]
  ]
};

移动端适配配置

1.安装插件
【命令】:npm i postcss-pxtorem postcss-px2rem lib-flexible style-resources-loader

npm i postcss-pxtorem postcss-px2rem lib-flexible style-resources-loader

【配置解析】:移动端适配 本项目将借助 postcss-pxtorem 插件实现,用于将 px 转换成 rem,并使用 lib-flexible 插件用于设置 rem 基准值。

2.main.js 文件中引入文件

import 'lib-flexible/flexible';// 实现了rem自适应布局
import './assets/styles/normalize.css';// 解决不同浏览器之间的差异

配置Webpack打包文件

需在项目中创建vue.config.js 文件,作为webpackp配置文件,具体配置内容如下:

const port = process.env.port || 8011;
const path = require('path');

function resolve(dir) {
  // __dirname:项目的路径
  return path.join(__dirname, dir);
}

module.exports = {
  outputDir: process.env.NODE_ENV === 'production' ?  'dist': 'douyin' ,
  productionSourceMap: false, // 生产环境是否 生成SourceMap
  devServer: {
    port,
    // 启动之后 自动打开浏览器
    open: true,
    // 报错的时候全屏显示错误
    overlay: {
      warnings: false,
      errors: true
    },
    // 设置代理
    proxy: {
      '/api': {
        target: 'http://192.168.43.154:8080', // 配置你的服务器
        ws: true,
        changeOrigin: true
      },
    }
  },
  css: {},
  configureWebpack: {
    resolve: {
      alias: {
        '@': resolve('src')
      }
    }
  },
  chainWebpack: config => {
    const types = ['vue-modules', 'vue', 'normal-modules', 'normal']
    types.forEach(type => addStyleResource(config.module.rule('less').oneOf(type)))
  },
}

// 全局样式 变量、函数
function addStyleResource(rule) {
  rule.use('style-resource')
    .loader('style-resources-loader')
    .options({
      patterns: [
        resolve('src/common/styles/variables.less'),
        resolve('src/common/styles/mixin.less'),
      ],
    })
}

【温馨提示】创建此配置文件为最外层,且同项目src文件夹同级。

创建访问配置文件

【配置解析】在平时开发项目的过程中,不同环境下的访问地址不同将其分为开发、测试、正式等环境,这样有利于项目访问地址的配置,不易造成错误,提高项目的准确性。可以借助 node.js 来判断 当前运行的环境,然后通过不同的运行环境 加载不同的访问地址。

1…env(开发环境)文件

NODE_ENV="development";
BASE_URL='/'
VUE_APP_BASE_API="/dev-api"

2…env.development(测试环境)文件

VUE_APP_ERUDA=true
NODE_ENV="development";
BASE_URL='/'
VUE_APP_BASE_API="/dev-api"

3…env.production(正式环境)文件

NODE_ENV="production";
BASE_URL='/'
VUE_APP_BASE_API="/prod-api"

项目基础结构

1.项目整体结构
在这里插入图片描述
2.项目目录结构

|- src                       源码目录 
	|- assets                    资源文件夹
      |--- fonts                   图标字体 阿里图标字体
      |--- icons                   项目图标
      |--- style                   封装的公共样式    
	|- common                    公共文件夹
      |- componments               封装的组件文件夹
      |- mixins                    封装的mixins文件夹
      |- directives                封装的directives文件夹
      |- styles                    公共样式文件夹
	|- layouts                   整个应用的布局文件
	|- middlewares               中间件
	|- modules                   应用的核心文件夹
	|- router                    路由
	|- store                     vuex 状态管理
	|- utils                     工具类
	|- views                     视图页面
	|- main.js                    vue项目入口
	|- App.vue                    根页面
|-.eslint.js                 eslint配置文件
|-babel.config.js            解析babel的配置文件
|-vue.config.js              webpack配置文件
|-.env                       访问地址配置文件(开发环境)
|-.env.development           访问地址配置文件(测试环境)
|-.env.production            访问地址配置文件(正式环境)
|- README.md                 项目介绍

图标库的使用

1.了解字体图标库
在这里我们将使用阿里字体图标库进行图标配置,并运用到项目中。
官方网址:阿里图标库
那么为什么要使用图标库呢?
由于常规的本地图标在加载时会增加很多额外的 “请求”,这将会大大降低网页的性能。另外,图片还有一个缺点就是不能很好的进行 “缩放”,有时候在 “响应式设计” 中需要使用图像的最好解决方案就是不去使用图片,这样更能提高项目的性能。
2.使用图标库
首先通过如上官网连接进入图标库网站中,如下图:
在这里插入图片描述
再根据具体需求搜索相应图标,添加到购物车中,如下图:
在这里插入图片描述
添加到购物车后,点击购物车图标进入如下图:
在这里插入图片描述
进入后点击添加至项目,进入如下:
在这里插入图片描述

【温馨提示】此处若已有项目文件则选择相应文件即可,若没有则创建项目文件。

接下来进入图标类文件生成,如下图:
在这里插入图片描述
当点击连接后,如下图:
在这里插入图片描述

最后将新生成的图标类,复制到项目中即可,如下图:
在这里插入图片描述
3.项目引用文件
在main.js文件中添加如下代码:

import './assets/fonts/iconfont.css';// icon图标引入

4.挑选相应图标并获取类名,应用于页面即可使用

<i class="iconfont icon-xxx"></i>

【温馨提示】每次添加新的图标后需将font-face(接口路径)一并进行更新。

结束语

本文章主要进行了项目创建、基础配置文件的配置讲解及阿里字体图标库使用的详细步骤,如有疑问或不足,欢迎小伙伴们留言提问,本人将即使改进更新。

项目仓库

项目采用Git进行管理,最终项目将会发布到GitHub中,感兴趣的小伙伴们可以一起学习,共同完善本项目。
项目地址:GitHub


上一篇:项目环境搭建
下一篇:底部导航栏组件功能

以上是关于vue.js项目实战运用篇之抖音视频APP-第二节:项目基础架构搭建的主要内容,如果未能解决你的问题,请参考以下文章

vue.js项目实战运用篇之抖音视频APP-第十二节: 用户信息页面功能

vue.js项目实战运用篇之抖音视频APP-第一节:项目环境搭建

vue.js项目实战运用篇之抖音视频APP-第八节: 视频播放功能

vue.js项目实战运用篇之抖音视频APP-第十节: 评论列表功能

vue.js项目实战运用篇之抖音视频APP-第十节: 评论列表功能

vue.js项目实战运用篇之抖音视频APP-第六节: 首页视频详情功能