前导知识:此案例结合 ElementUI 组件库

一:创建工程

到要存放项目的位置下打开CMD
输入 指令:vue init webpack hello-vue

填写相关信息并一路No即可 第一步结束

二:安装依赖

我们这个demo需安装 vue-routerelement-uisass-loadernod-sass 这四个插件
步骤如下

  1. 进入工程目录 ———————> cd hello-vue
  2. 安装 vue-router ——————> npm install vue-router --save-dev
  3. 安装 element-ui ——————> npm i element-ui -S
  4. 安装依赖 —————————> npm install
  5. 安装SASS 加载器 —————> cnpm install sass-loader node-sass --save-dev
  6. 启动测试 —————————> npm run dev

可以成功访问了之后我们就可以开始下一步了

三:在IDEA中open此项目 并修改其中文件

删掉一些自带的图片和vue文件并修改 图中右侧两个文件

四:在src下新添 文件夹 及文件

assets:用于存放资源文件
components:用于存放Vue 功能组件
views:用于存放Vue视图组件
router:用于存放vue-router配置

在视图组件view中新建 两个组件( 首页 和 登录页面 )


Login.vue代码如下

<template>
<el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"><el-form-item label="密码" prop="pass"><el-input type="password" v-model="ruleForm.pass" autocomplete="off"></el-input></el-form-item><el-form-item label="确认密码" prop="checkPass"><el-input type="password" v-model="ruleForm.checkPass" autocomplete="off"></el-input></el-form-item><el-form-item label="年龄" prop="age"><el-input v-model.number="ruleForm.age"></el-input></el-form-item><el-form-item><el-button type="primary" @click="submitForm('ruleForm')">提交</el-button><el-button @click="resetForm('ruleForm')">重置</el-button></el-form-item>
</el-form></template>
<script>export default {data() {var checkAge = (rule, value, callback) => {if (!value) {return callback(new Error('年龄不能为空'));}setTimeout(() => {if (!Number.isInteger(value)) {callback(new Error('请输入数字值'));} else {if (value < 18) {callback(new Error('必须年满18岁'));} else {callback();}}}, 1000);};var validatePass = (rule, value, callback) => {if (value === '') {callback(new Error('请输入密码'));} else {if (this.ruleForm.checkPass !== '') {this.$refs.ruleForm.validateField('checkPass');}callback();}};var validatePass2 = (rule, value, callback) => {if (value === '') {callback(new Error('请再次输入密码'));} else if (value !== this.ruleForm.pass) {callback(new Error('两次输入密码不一致!'));} else {callback();}};return {ruleForm: {pass: '',checkPass: '',age: ''},rules: {pass: [{ validator: validatePass, trigger: 'blur' }],checkPass: [{ validator: validatePass2, trigger: 'blur' }],age: [{ validator: checkAge, trigger: 'blur' }]}};},methods: {submitForm(formName) {this.$refs[formName].validate((valid) => {if (valid) {this.$router.push("/Main");} else {console.log('error submit!!');return false;}});},resetForm(formName) {this.$refs[formName].resetFields();}}}
</script>

五:在路由文件夹中新建index.js

import Vue from 'vue'
import Router from 'vue-router'import main from '../views/Main'
import login from '../views/Login'//显式的使用
Vue.use(Router);export default new Router({routes:[{//请求路由路径path:'/Main',//跳转的组件component:main},{//请求路由路径path:'/Login',//跳转的组件component: login}]
});

六:修改main.js 文件和App.vue文件

main.js代码

import Vue from 'vue'
import App from './App'import router from './routers' //扫描路由
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';//显式安装路由
Vue.use(router);
Vue.use(ElementUI);new Vue({el: '#app',//配置路由router,render:h => h(App) //ElementUI
})

App.vue代码

<template><div id="app"><router-view></router-view></div>
</template><script>
export default {name: 'App'
}
</script>

七:流程再走一遍~

访问网站 一开始是空白的

我们尝试访问Login

填写信息并点击提交

成功跳转到Main页

这是因为 在Login.vue中写了路由转换的语句

好的 分析一下思路:

访问网站先访问App.vue
因为App.vue中有路由 进而去main.js找路由配置 所以找到路由的index.js
此时还没访问Main页或者Login页
当访问这俩个页面时 会去index.js中找他们对应的路由请求路径
之后跳转到他们对应的组件中,将组件中的template模板渲染展示

The road to the Vue(七、实战篇)相关推荐

  1. Vue 人资 实战篇七 员工管理上 封装通用的组件、formatter属性、过滤器的使用、树形结构、建立公共导入的页面路由、excel的导入和导出、

    1.0 封装一个通用的工具栏 目标:封装一个通用的工具栏供大家使用 1.1 通用工具栏的组件结构 在后续的业务开发中,经常会用到一个类似下图的工具栏,作为公共组件,进行一下封装 组件 src/comp ...

  2. Vue 人资 实战篇八 权限设计 重点!!!路由访问权限,左侧导航栏显示等等,还有 mixin 混入方法

    1.0 权限设计-RBAC的权限设计思想 传统的权限设计是对每个人进行单独的权限设置,但这种方式已经不适合目前企业的高效管控权限的发展需求,因为每个人都要单独去设置权限 基于此,RBAC的权限模型就应 ...

  3. Vue 人资 实战篇九 其他模块集成和主页审批-图表-日历、echarts、 枚举的一个方法

    1.0 全模块集成 目标: 将其他业务模块代码集成到该项目中 到目前为止,我们已经完成了一个基本项目框架 + 组织架构 + 公司 + 员工 + 权限的 业务联调, 时间关系,我们不可能将所有的业务都去 ...

  4. Vue实战篇三十三:实现新闻的浏览历史

    系列文章目录 Vue基础篇一:编写第一个Vue程序 Vue基础篇二:Vue组件的核心概念 Vue基础篇三:Vue的计算属性与侦听器 Vue基础篇四:Vue的生命周期(秒杀案例实战) Vue基础篇五:V ...

  5. Vue实战篇三十一:实现一个改进版的头条新闻

    系列文章目录 Vue基础篇一:编写第一个Vue程序 Vue基础篇二:Vue组件的核心概念 Vue基础篇三:Vue的计算属性与侦听器 Vue基础篇四:Vue的生命周期(秒杀案例实战) Vue基础篇五:V ...

  6. Vue实战篇三十:实现一个简易版的头条新闻

    系列文章目录 Vue基础篇一:编写第一个Vue程序 Vue基础篇二:Vue组件的核心概念 Vue基础篇三:Vue的计算属性与侦听器 Vue基础篇四:Vue的生命周期(秒杀案例实战) Vue基础篇五:V ...

  7. Vue.js实战之系统学习第七节

    想看上一节的请点击: Vue.js实战之系统学习第六节 接下来我们要学习第七节了,时间过的好快. 组件详解 组件是Vue.js的核心功能,也是整个框架设计最精彩的地方,当然也是最难掌握的.本章节将带你 ...

  8. Vue实战篇二十八:实现一个手机版的购物车

    系列文章目录 Vue基础篇一:编写第一个Vue程序 Vue基础篇二:Vue组件的核心概念 Vue基础篇三:Vue的计算属性与侦听器 Vue基础篇四:Vue的生命周期(秒杀案例实战) Vue基础篇五:V ...

  9. Vue实战篇二十七:实现走马灯效果的商品轮播图

    系列文章目录 Vue基础篇一:编写第一个Vue程序 Vue基础篇二:Vue组件的核心概念 Vue基础篇三:Vue的计算属性与侦听器 Vue基础篇四:Vue的生命周期(秒杀案例实战) Vue基础篇五:V ...

  10. Vue实战篇二十九:模拟一个简易留言板

    系列文章目录 Vue基础篇一:编写第一个Vue程序 Vue基础篇二:Vue组件的核心概念 Vue基础篇三:Vue的计算属性与侦听器 Vue基础篇四:Vue的生命周期(秒杀案例实战) Vue基础篇五:V ...

最新文章

  1. BZOJ2588 Count on a tree DFS序+LCA+值域主席树
  2. 主nginx linux,Linux-实现双主模型的nginx的高可用
  3. Kotlin中的高阶函数
  4. SAP Fiori Launchpad tile里显示的数字的刷新间隔是在服务器端什么地方配置的
  5. 图像处理——图像边缘检测
  6. .NET(c#) 移动APP开发平台 - Smobiler(1)
  7. 华为怎么用手机看时间到读秒_华为手机灭屏也可以看时间?其实设置方法很简单,不会有些可惜了...
  8. Spring Boot Restful框架搭建和使用【持续更新中】
  9. js des加密 java_java JS DES互相加密解密 通用!!!
  10. 秒杀系统优化方案之缓存、队列、锁设计思路
  11. 解决Source Not Found问题
  12. paypal php 对接
  13. idea 2020.3更新后如何实现run parallel
  14. 3.3KW车载充电机开关电源方案数字控制单相PFC与全桥LLC
  15. 张鑫溢:9.21黄金原油独家操作建议指导.
  16. MySQL 03、深入浅出索引
  17. 51单片机数码管滚动显示学号_数协微课 | LED数码管与51单片机应用
  18. Python中字符串的操作(图文详情)
  19. 解剖gowitness
  20. 惯量辨识c语言程序设计,异步电机参数在线辨识技术的(硬件部分)毕业设计.doc...

热门文章

  1. windows server上novnc的部署和使用
  2. Laraval6 使用命令创建共通方法
  3. Linux下安装mysql客户端
  4. java 读取 Excel表格内容
  5. 解决Linux服务器Debian9.9执行source命令不生效问题
  6. 在单片机中如何实现手动/自动控制外设
  7. 应用通过MySQL Router连接MGR数据库失败原因-1
  8. 通过 Sqoop1.4.7 将 Mysql5.7、Hive2.3.4、Hbase1.4.9 之间的数据导入导出
  9. 如何在Word快速合并多个Word文档的内容到一个文档中
  10. mysql和java时间戳查询