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 ...
随机推荐
- Python【集合】、【函数】、【三目运算】、【lambda】、【文件操作】
set集合: •集合的创建; set_1 = set() #方法一 set_1 = {''} #方法二 •set是无序,不重复的集合; set_1 = {'k1','k2','k3'} set_1.a ...
- 从七牛云迁移图片到github
迁移理由 问题是网站的大部分图床都是用的七牛云,官网有改动,所以原测试域名都失效,所以决定进行迁移,将七牛云中的图片迁移到github仓库中. 迁移步骤 Step1:从废弃测试域名空间至可用测试域名空 ...
- moviepy音视频剪辑:AudioClip帧处理时报TypeError: only size-1 arrays can be converted to Python scalar错
☞ ░ 前往老猿Python博文目录 ░ 一.环境 操作系统:win7 64位 moviepy:1.0.3 numpy:1.19.0 Python:3.7.2 二.应用代码及报错信息 程序代码 if ...
- 第三十七章、PyQt输入部件:QAbstractSlider派生类QScrollBar滚动条、QSlider滑动条、QDial刻度盘功能介绍
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 Designer中的输入部件Horizo ...
- 第十一章 Python 支撑正则表达式处理的re模块
re模块是Python中支持正则表达式处理的模块,老猿学了之后,发现这部分内容太多,要表述清楚需要开单章才能写清楚,但老猿觉得re模块的使用对多数人来说要通过教程学习去熟练掌握很难,需要经常接触练习加 ...
- Monkey的使用
1.进入adb shell 环境 在Windows环境下进入DOS界面,输入adb shell 注意:adb shell服务使用的端口是5037,如果此端口被其他进程占用时,将不能正常启动adb sh ...
- Docker部署CTF综合性靶场,定时刷新环境
部署如DVWA或upload-labs这类综合性靶场的时候,虽然是使用Docker环境,设置好权限后容器被击穿的问题不需要考虑,但担心部分选手修改了题目环境,比如一直XSS弹窗,所以想要编写脚本每天定 ...
- 十. Axios网络请求封装
1. 网络模块的选择 Vue中发送网络请求有非常多的方式,那么在开发中如何选择呢? 选择一:传统的Ajax是基于XMLHttpRequest(XHR) 为什么不用它呢?非常好解释配置和调用方式等非常混 ...
- pandas 由其中几列生成新的列
data是一个dataframe #data["x1"]=data[["a","b"]].apply(lambda x:x["a& ...
- 程序员必读的 99 本书籍 & 资源
作为程序员,始终要保持学习,一直带着纸质书还是很不便的,因此电子书对于我们还是挺需要的.为了方便广大的小伙伴也能方便找到对应的电子书,我花费洪荒之力从各个搜索网站收集了几百本常用的电子书,找到了,我要 ...