Vue:vue的工程化

Vue前端工程化

前后端分离开发

即前端人员开发前端工程,将开发好的前端工程打包部署在前端服务器上

后端开发人员开发后端工程,再将后端工程打包部署在后端服务器上,这种模式称为前后端分离开发

而前后端要顺利对接的关键就是要遵循一定的开发规范

请添加图片描述

开发规范

这种开发规范定义在一份文档中,即为接口文档.

在接口文档中规定了每一个功能前端需要传递什么参数,

后端需要返回什么样的结果,请求方式,请求路径等等.

前后端只需要根据接口文档进行开发即可.

开发流程

开发项目时,具体的开发流程如下所示:

请添加图片描述

1,需求分析:

根据产品经理提供的产品原型,以及需求文档来分析需求,熟悉业务.

2,接口定义:

根据需求文档及需求梳理定义接口文档(前后端均有).

3,前后端并行开发:

前后端开发人员依据接口文档,进行并行开发,在开发时,需要严格遵循接口文档中的规范说明.

4,测试:

前后端工程功能开发完毕后,自行测试.前端在测试时,需要通过模拟数据测试.

5,前后端联调测试:

前后端都开发完毕后,进行联调测试.

Yapi

一个高效,易用,功能强大的api管理平台,旨在为开发,产品,测试人员提供更加优雅的接口管理服务.

1,api接口管理:管理项目的api接口

2,mock测试数据:自动生成mock数据(模拟数据),供前端人员进行功能测试.

前端工程化

前端开发存在着大量不同的技术栈和业务实现方式,存在很多的弊端

因此,需要一个前端脚手架来使前端开发工程化.

Vue-cli

Vue官方提供的一个脚手架,用于快速生成一个工程化的Vue模版

Vue-cli功能

1,同一目录结构

2,本地调试

3,热部署

4,单元测试

5,集成打包上线

依赖环境:NodeJs

NodeJs

一个基于Chrome V8引擎的JavaScript运行环境,是一个让js运行在服务端的开发平台,NodeJs对JS有巨大的提升,对于前端来说,就是js代码的运行环境,类似于jdk之于java.

Vue项目

Vue创建

打开ui界面

vue ui

打开项目管理器

请添加图片描述

创建项目

请添加图片描述
请添加图片描述
请添加图片描述

目录结构

node_modules
//存放项目依赖包
public
//存放项目静态资源文件
src
//存放项目的源代码
package.json
//模块基本信息,项目开发所需模块,版本信息
vue.config.js
//保存vue的配置文件,如:代理,端口配置等
src目录

请添加图片描述

assets
//静态资源
components
//可重用的组件
router
//路由配置
views
//视图组件(页面)
App.vue
//入口页面(根组件)
main.js
//入口js文件

项目启动

npm run serve

ElementUI

一套基于Vue2.0的桌面端组件库

组件库安装
npm install element-ui@2.15.3
引入ElementUI组件库
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
使用
Table 表格
Pagination 分页
Dialog 对话框
Form 表单
.......

Vue路由

Vue Router是Vue的官方路由

前端路由:

URL中的hash地址与组件之间的对应关系

组成:
VueRouter:

路由器类,根据路由请求在路由视图中动态渲染选中的组件,路由表中就是路径和视图的对应关系.

router-link:

请求链接组件,浏览器会解析成

<a>
router-view:

动态视图组件,用来渲染展示与路由路径对应的组件

请添加图片描述

打包部署

npm run build

NGINX

一个轻量级的前端服务器,占用内存少,并发能力强.

项目

部门加员工管理系统:

主页面插入组件

<template>
    <el-container>
        <el-header>智能学习辅助系统</el-header>
        <el-container>
            <el-aside width="200px">
                <el-menu :default-openeds="['1']">
                    <el-submenu index="1">
                        <template slot="title"><i class="el-icon-message"></i>系统信息管理</template>
                        <el-menu-item-group>
                            <router-link to="/dept">
                                部门管理
                            </router-link>
                            <hr>
                            <router-link to="/emp">
                                员工管理
                            </router-link>
                        </el-menu-item-group>
                    </el-submenu>
                </el-menu>
            </el-aside>
            <el-main>
                <el-table :data="tableData">
                    <el-table-column prop="id" label="id" width="180">
                    </el-table-column>
                    <el-table-column prop="name" label="姓名" width="180">
                    </el-table-column>
                    <el-table-column prop="gender" label="性别" width="180">
                        <scope slot-scope="scope">
                            {{ scope.row.gender == 1 ? "男" : "女" }}
                        </scope>
                    </el-table-column>
                    <el-table-column prop="job" label="职位" width="180">
                    </el-table-column>
                    <el-table-column prop="entrydate" label="日期" width="180">
                    </el-table-column>
                    <el-table-column prop="updatetime" label="最后修改时间" width="180">
                    </el-table-column>
                </el-table>
            </el-main>
        </el-container>
    </el-container>
</template>

设置样式

<style>
.el-header {
    background-color: #B3C0D1;
    color: #333;
    line-height: 60px;
}

.el-aside {
    color: #333;
}
</style>

获取后端数据返回给页面

<script>
import axios from 'axios';

export default {
    data() {
        const tableData = [];
        return {
            tableData: Array(10).fill(tableData)
        }
    },
    methods: {

    },
    mounted() {
        axios.get("http://yapi.eehp.cn/mock/61/user/findAll").then((result) => {
            this.tableData = result.data.data;
        })
    }
}
</script>

路由跳转部门管理页面

<template>
    <el-container>
        <el-header>智能学习辅助系统</el-header>
        <el-container>
            <el-aside width="200px">
                <el-menu :default-openeds="['1']">
                    <el-submenu index="1">
                        <template slot="title"><i class="el-icon-message"></i>系统信息管理</template>
                        <el-menu-item-group>
                            <router-link to="/dept">
                                部门管理
                            </router-link>
                            <hr>
                            <router-link to="/emp">
                                员工管理
                            </router-link>
                        </el-menu-item-group>
                    </el-submenu>
                </el-menu>
            </el-aside>
            <el-main>
                <p>成啦兄弟!</p>
            </el-main>
        </el-container>
    </el-container>
</template>
<style>
.el-header {
    background-color: #B3C0D1;
    color: #333;
    line-height: 60px;
}

.el-aside {
    color: #333;
}
</style>
<script>
import axios from 'axios';

export default {
    data() {
        const tableData = [];
        return {
            tableData: Array(10).fill(tableData)
        }
    },
    methods: {

    },
    mounted() {
        axios.get("http://yapi.eehp.cn/mock/61/user/findAll").then((result) => {
            this.tableData = result.data.data;
        })
    }
}
</script>

路由配置

初始重定向到员工管理页面

{
    path: '/',
    name: 'home',
    redirect:"../views/ContainerView.vue"
  },
  {
    path: '/emp',
    name: 'emp',
    component: () =>import('../views/ContainerView.vue')
  },
  {
    path: '/dept',
    name: 'dept',
    component: () =>import('../views/DeptView.vue')
  },

刷新路由

在app.vue中刷新路由

<router-view></router-view>
  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue常见的Webpack工程化配置包括以下几个方面: 1. 安装Webpack和相关插件:可以使用npm或yarn安装Webpack和相关插件,如html-webpack-plugin和webpack-dev-server。通过html-webpack-plugin插件可以自定义index.html页面的内容,而webpack-dev-server插件可以配置开发服务器。 2. 创建Webpack配置文件:在项目根目录下创建名为webpack.config.js的Webpack配置文件,并初始化基本配置。其中,可以设置mode为development或production,分别代表开发环境和生产环境。 3. 配置Webpack-dev-server:在webpack.config.js配置文件中,可以通过devServer节点对webpack-dev-server插件进行更多的配置。例如,可以设置open为true,表示初次打包完成后自动打开浏览器;设置port为80,指定运行的主机地址为'127.0.0.1'。 综上所述,Vue常见的Webpack工程化配置包括安装Webpack和相关插件、创建Webpack配置文件以及配置Webpack-dev-server插件。这些配置可以根据项目需求进行进一步的定制和扩展。 #### 引用[.reference_title] - *1* *2* *3* [Vue基础--webpack介绍以及基础配置](https://blog.csdn.net/Gu_amber/article/details/126301933)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值