VUE + vue-cli + webpack 创建新项目
首先记录一下命令。
这是一个睿智新手的笔记。
p.s.这是配置好环境以后的命令。
-----------------------------------------------
$ npm install -global vue-cli //手脚架先装好
$ vue init webpack my-project //创建个存放项目的目录
$ cd my-project //进入此目录
$ npm install
$ npm run dev //运行项目
//安装插件
$ npm install iview --save
$npm install vuex --save
...
具体步骤参考 https://www.jianshu.com/p/f82d55df7e54
这篇博客很详尽,感恩作者,啵啵啵啵
基本要用的东西安装配置完后,main.js里是这样的:


可以看到我们的接口调用使用axios,这里需要配置接口的域名(前缀),可以方便接口域名的更改:config下的dev.env.js


然后在scr文件夹下新建api文件夹,里面新建api.js,配置url_root:

此时main.js里的第17行就可以理解了:

ps:后端也需要处理请求头以及Access-Control-Allow-Credentials为true,保证跨域资源共享
再ps:关于axios为我们做了什么,可以参看大佬的github分享的:https://github.com/leer0911/myXHR/blob/master/doc/README.md#typescript-%E9%87%8D%E6%9E%84-axios-%E5%85%A8%E6%94%BB%E7%95%A5
而我们在调用接口的时候就可以这么写了: ↓ 下面是login.vue:
this.$refs["formInline"].validate(valid => {
if (valid) {
var data = new FormData();
data.append('username',formInline.user)
data.append('password',formInline.password)
this.$http({
method: "post",
url: this.$url_root + "/user/login",
data: data
}).then((response) => {
if(response.data.succeed){
this.$Message.success("登陆成功!");
this.user=''
this.password= ''
sessionStorage.setItem("user", formInline.user);
sessionStorage.setItem("password", formInline.password);
this.$router.push({path:'/home'});
this.$store.state.myheadright = true
}else{
this.$Message.error(response.data.message);
}
});
} else {
this.$Message.error("请输入正确的用户名和密码!");
this.user = "";
this.password = "";
this.verification_code = "";
}
});
其实一般来说登陆成功后台应该返回一个AccessToken,非常方便,但是由于这个项目是个非常粗糙的项目,所以不要指望后台来适应咱了,我忍。
这里还涉及到了登陆与否的某些通用组建的变化,比如在登录页面没有侧边栏,在登陆之后头部要出现“注销”按钮,这里的实现使用了两种方式。
侧边栏的隐藏和显示使用了v-if + watch。因为我们统一在APP.vue进行显示,所以在这里可以看到如何实现:
首先APP.vue要引一下我们写好的组件:

这里是我们的页面DOM:(可以看到class为layout的div使用了v-if进行控制)

data里定义path,watch进行监控:

此时就可以看到区别了:(页面毫无ui设计,蓝瘦)


这个是我们在src中同样新建的store文件夹下的store.js配置的:

而里面的myheadright就是我们在header组件中写好的:

这里是写在注销方法里的控制:
接下来关于登陆与否的验证,还有一条——当我们没有登陆却进了其他页面呢?此时需要立刻判断是否登录,并作出页面跳转,这里我们后台没有返回什么东西给我,我只好把账号密码存在本地,尴尬:

当然上面这段是抄的,忘记是哪位大神的博客了,很难过,感谢他,啾咪!
VUE + vue-cli + webpack 创建新项目的更多相关文章
- VUE + vue-cli + webpack 创建新项目(2)
上一篇其实没写完. 好吧这一篇其实也没啥. 就补充一些上一篇没写完的.(随时害怕笔记本丢失的人) 上一篇写完了登录验证的跳转,这一片首先补充一下接口(?). 在使用axios的过程中,我们家后台表示你 ...
- 用Kotlin开发Android应用(II):创建新项目
这是关于Kotlin的第二篇.各位高手发现问题,请继续“拍砖”. 原文标题:Kotlin for Android(II): Create a new project 原文链接:http://anton ...
- cocos2d-x3.2创建新项目失败的一种可能性(cygwin自带的python2.6被抢先执行)
之前一直使用cocos2d-x2.2写游戏,写了几个游戏后,想尝试下3.x版本的新功能,就下载了cocos2d-x3.2版本. 参照官方文档的说法,cocos2d-x3.x版本需要python2.7环 ...
- AndroidStudio创建新项目报错
创建新项目自动执行时报错: Failed to import new Gradle project: failed to find Build Tools revision 17.0.0 Consul ...
- cocos2dx 3.3创建新项目 和 VS2012解决方案加载失败问题
首先创建新项目,步骤如下: 1.进入cocos2d-x-3.3\tools\cocos2d-console\bin目录,按住shift+鼠标右键 2.输入 cocos new 项目名 –p 包名 – ...
- What?VS2019创建新项目居然没有.NET Core3.0的模板?Bug?
今天是个值得欢喜的日子,因为VS2019在今天正式发布了.作为微软粉,我已经用了一段时间的VS2019 RC版本了.但是,今天有很多小伙伴在我的<ASP.NET Core 3.0 上的gRPC服 ...
- android studio: 一个Android studio 3.3.2 无法创建新项目的问题
记录一个AS无法创建新项目的问题. 今天想写一个测试Demo,点击上面的“Start a new Android Studio Project” ,填写完包名和项目路径后,点“Finish”, AS无 ...
- Android Studio开发第二篇创建新项目
创建新项目很简单,File-New-New Project,这个没什么好说的跟Eclipse都差不都. 第二步SDK选择,有手机平板还有Wear,TV,汽车Auto,谷歌眼镜等几个种平台,这里就先选择 ...
- git 创建新项目,下载工程,合并和更新工程简单应用记录
以前使用SVN很顺手,现在公司使用git来管理代码,因此学习git的基本使用. 一.首先介绍下SVN和git的简单比较: SVN是使用得最多的版本控制管理工具. 1.是一个集中式的版本管理工具.所有的 ...
随机推荐
- IIS支持apk文件
随着智能手机的普及,越来越多的人使用手机上网,很多网站也应手机上网的需要推出了网站客户端,.apk文件就是安卓(Android)的应用程序后缀名,默认情况下,使用IIS作为Web服务器的无法下载此文件 ...
- Ceph与Gluster之开源存储的对比
一.Ceph与Gluster之开源存储的对比 一.Ceph与Gluster的原理对比 Ceph和Gluster是Red Hat旗下的成熟的开源存储产品,Ceph与Gluster在原理上有着本质上的不同 ...
- 【Linux】-NO.86.Linux.6.C.1.001-【CentOS 7 Install GCC】-
1.0.0 Summary Tittle:[Linux]-NO.86.Linux.6.C.1.001-[CentOS 7 Install GCC]- Style:Java Series:Log4j S ...
- Linux下安装pymysql
直接使用pip进行安装: [root@mycentos ~]#pip install pymysql
- RabbitMQ:Docker环境下搭建rabbitmq集群
RabbitMQ作为专业级消息队列:如何在微服务框架下搭建 使用组件 文档: https://github.com/bijukunjummen/docker-rabbitmq-cluster 下载镜像 ...
- enzyme design 整体流程及感想
想起什么来写什么吧. 整体流程(以Ceas2, TPP, G3P为例): 准备蛋白即配体参数文件: 设置CST文件: 准备protocol和flag文件: 运行enzyme_design: 结果处理. ...
- SQL Server 之 事务与隔离级别实例讲解
SQL Server 之 事务与隔离级别实例讲解 SQL Server 实现了6个隔离级别来防止并发情况下,类似企图并发的访问或修改同一数据时问题的发生.本文将带你体验全部6个隔离级别.正如你接下来将 ...
- leaflet实用插件整理
leaflet实用插件整理: https://www.giserdqy.com/webgis/leaflet/4920/leaflet%E5%AE%9E%E7%94%A8%E6%8F%92%E4%BB ...
- python_WSGI接口
WSGI:Web Server Gateway Interface WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求.我们来看一个最简单的Web版本的“Hello, ...
- 实现html页面自动刷新的几种方式
自动页面刷新通常会用在对数据的实时性比较敏感的网站中,比如股票走势等,另外在普通的页面自动跳转中也会使用到页面自动刷新技术. 页面刷新我见过的有三种方式,下面来一一说明 1.通过在<head&g ...