Vue从零开发SPA项目
所谓SPA(single page web application),就是单页面项目的意思。
vue的亮点就是我们只需要关注数据的变化,下面演示一下从零开始创建一个独立项目,并且能自定义路由,提交表单。
一、命令行创建项目
使用vue-cli
安装
npm uninstall vue-cli -g
界面创建项目
安装完成后运行
vue ui
打开http://localhost:8000,会看到如下界面

*创建项目

下一步,我选择了默认

创建完后目录如下

也可以直接用命令行创建
vue create qionghe
启动项目,更多请查看cli使用文档
我们进入目录chenqionghe,执行npm run serve
cd chenqionghe
npm run serve

打开界面如下http://localhost:8080/

创建webpack项目
安装
npm i -g @vue/cli-init
创建项目
vue init webpack chenqionghe
一路回车

安装完成目录如下

启动
npm run dev

打开http://localhost:8080/#/如下

二、自定义路由
关于路由的使用可以参考查看:router文档
绝对路由
- 新建路由文件Cqh.vue

router/index.js引入这个新路由,并指定一个自己的路由

访问:http://localhost:8080/#/cqh,看到如下结果

这样我们就可以自定义路由了
带参数的路由
比如在后面加上:id,如下

使用{{ $route.params.键名}}获取,如下

运行结果

可以看到,id已经能正常的获取和渲染了
嵌套路由
就是一个分组路由的概念,我们把component/Cqh.vue修改一下
<template>
<div class="hello">
<router-link to="/cqh/testA">TestA</router-link>
<router-link to="/cqh/testB">TestB</router-link>
<router-view/>
</div>
</template>
这个router-link就是使用路由的方式,这里我加了两上新路由/cqh/testA,/cqh/testB
这个<router-view/>就是子路由要渲染的地方,再添加一个对应的子路由,如下
访问http://localhost:8080/#/cqh,如下

分别点击TestA和TestB,


这里的页面切换非常平常,体验相当好!
三、表单交互示例
有路由了,咱们后端关注的还是数据交互,少不了表单,下面来个简单的示例TestForm,代码如下
<template>
<div class="hello">
<h1>{{ name }}</h1>
名字:<input type="text" v-model="form.name"/><br>
年龄:<input type="text" v-model="form.age"/><br>
性别:<input type="text" v-model="form.sex"/><br>
<button @click="mySubmit">提交</button>
<p>{{form.msg}}</p>
</div>
</template>
<script>
export default {
data() {
return {
name: '雪山飞猪',
form: {},
}
},
methods: {
mySubmit() {
let msg = "您提交的数据是:" + JSON.stringify(this.form);
this.$set(this.form, 'msg', msg)
}
}
}
</script>
运行如下

再提交一下数据,测试一下

可以看到已经能拿到表单的数据了,用了表单数据,就可以自行请求接口了
传送门:想要更牛逼的表单,请使用ElementUI
vue的使用也太简单了吧,太感人了,只需要关注数据的变化!giao~
Vue从零开发SPA项目的更多相关文章
- 基于 vue 全家桶的 spa 项目脚手架
项目简介 Github: https://github.com/hanan198501/vue-spa-template 我们基于 vue-cli 脚手架生成项目模板做了一些改造,加入了 vue-ro ...
- SPA项目开发登陆注册
使用vue-cli脚手架工具创建一个vue项目 vue init webpack pro01 npm安装elementUI cd pro01 #进入新建项目的根目录 安装: npm install a ...
- SPA项目开发之动态树+数据表格+分页
SPA项目开发之动态树+数据表格+分页 动态生成NavMenu导航菜单(只支持2级菜单) <el-menu key="" index=""> < ...
- SPA项目开发动态树、数据表格、分页功能
SPA项目开发 1.修改左侧动态树 LeftNav.vue <template> <el-menu router :" class="el-menu-vertic ...
- SPA项目开发--左侧树加首页导航
SPA项目开发--左侧树以及首页导航 1. Mock.js 前后端分离之后,前端迫切需要一种机制,不再需要依赖后端接口开发,而今天的主角mockjs就可以做到这一点 Mock.js是一个模拟数据 ...
- VUE-CLI Vue安装及开发,npm run build无法查看项目的问题
Vue-cli 本地安装vue项目 需要安装node.js,用node命令行npm的方式安装Vue 步骤: 1.进入项目地址安装 npm install vue-cli -g 2.初始化一下 ESli ...
- 分享Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站
这是个什么的项目? 使用 Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站. 博客线上地址:www.boblog.com Github地址:https: ...
- 从无到有实现搭建vue+ElementUI+less+ES6的开发环境并进行简单的开发的项目
项目简介:该项目是基于日常计算宿舍水电煤气费的需求写的,旨在从无到有实现搭建vue+ElementUI+less+ES6的开发环境并进行简单的开发,使用webpack进行代码的编译.压缩和打包,并疏通 ...
- Vue实例:vue2.0+ElementUI框架开发pc项目
开发前准备 vue.js2.0中文,项目所使用的js框架 vue-router,vue.js配套路由 vuex,状态管理 Element,UI框架 1,根据官方指引,构建项目框架 安装vue npm ...
随机推荐
- [oBIX包使用教程] 使用 Python 通过 oBIX 协议访问 Niagara 数据
oBIX 全称是 Open Building Information Exchange,它是基于 RESTful Web Service 的接口的标准,用于构建控制系统.oBIX是在专为楼宇自动化设计 ...
- 【2020.12.02提高组模拟】A组反思
55,rk47 T1 赛时先想了\(trie\),想到不一定是前缀,然后就放弃转为打暴力 得分:\(RE22\) 正解是只用判断\(i\)与\(i+1\)的关系,那么只有两种情况,判断一下然后\(dp ...
- 【2020.11.30提高组模拟】删边(delete)
删边(delete) 题目 题目描述 给你一棵n个结点的树,每个结点有一个权值,删除一条边的费用为该边连接的两个子树中结点权值最大值之和.现要删除树中的所有边,删除边的顺序可以任意设定,请计算出所有方 ...
- Python_爬虫养殖专业户_00
为什么学习爬虫? 当你在夜深人静,睡不着觉,想看一些更加睡不着觉的图片/视频时... 这是一句疑似玩笑话, 现实情况是, 每一天, 整个社会都积累了大量的数据, 在数据化的社会中,没有大批量的收集和探 ...
- 第11.23节 Python 中re模块的搜索替换功能:sub及subn函数
一. 引言 在<第11.3节 Python正则表达式搜索支持函数search.match.fullmatch.findall.finditer>重点介绍了几个搜索函数,除了搜索,re模块也 ...
- PyQt学习随笔:Qt Designer调用帮助时报错找不到assistant.exe文件的解决办法
老猿是按照<第15.5节 PyQt5安装与配置>步骤安装的PyQt及相关工具,但最近在Qt Designer中点击帮助相关菜单时报错找不到assistant.exe文件,如图: 按照报错信 ...
- k8s 节点 notReady问题解决流程
1.在k8smaster 服务器检查节点状态 kubectl describe nodes aaaa #没有报错,异常信息 2.在节点上检查kubelet服务状态 netstat -tlanp| ...
- 【Alpha冲刺阶段】Scrum Meeting Daily5
[Alpha冲刺阶段]Scrum Meeting Daily5 1.会议简述 会议开展时间 2020/5/27 8:30-9:00 PM 会议基本内容摘要 大家讲述了自己的任务完成情况以及遇到的问题 ...
- 手把手教你写DI_2_小白徒手撸构造函数注入
小白徒手撸构造函数注入 在上一节:手把手教你写DI_1_DI框架有什么? 我们已经知道我们要撸哪些东西了 那么我们开始动工吧,这里呢,我们找小白同学来表演下 小白同学 :我们先定义一下我们的广告招聘纸 ...
- 题解-Little C Loves 3 III
Little C Loves 3 III 给定 \(n\) 和序列 \(a_0,a_1,\dots,a_{2^n-1}\) 和 \(b_0,b_1,\dots,b_{2^n-1}\),求序列 \(c_ ...