VUE项目实战

Vue实战—–用户登录及注册

1.用户登录

用户登录页面主要是获取当前页面用户输入的帐号跟密码,验证是否为空并通过VUE axios(http请求插件),vue更新到2.0之后,作者就宣告不再对vue-resource更新,而是推荐的axios,前一段时间用了一下,现在说一下它的基本用法。


配置文件选项,这里的config是对一些基本信息的配置,比如请求头,baseURL,请求方式等等,当然这里提供了一些比较方便配置项:

//config
import Qs from 'qs'
{
  //请求的接口,在请求的时候,如axios.get(url,config);这里的url会覆盖掉config中的url
  url: '/user',

  // 请求方法同上
  method: 'get', // default
  // 基础url前缀
  baseURL: 'https://some-domain.com/api/',
  
    
  transformRequest: [function (data) {
    // 这里可以在发送请求之前对请求数据做处理,比如form-data格式化等,这里可以使用开头引入的Qs(这个模块在安装axios的时候就已经安装了,不需要另外安装)
  data = Qs.stringify({});
    return data;
  }],

  transformResponse: [function (data) {
    // 这里提前处理返回的数据

    return data;
  }],

  // 请求头信息
  headers: {'X-Requested-With': 'XMLHttpRequest'},

  //parameter参数
  params: {
    ID: 12345
  },

  //post参数,使用axios.post(url,{},config);如果没有额外的也必须要用一个空对象,否则会报错
  data: {
    firstName: 'Fred'
  },

  //设置超时时间
  timeout: 1000,
  //返回数据类型
  responseType: 'json', // default


}

当你配置完congig文件,我们就可以减少很多额外的处理代码也更优美,直接使用

        axios.post(url,{},config)
            .then(function(res){
                console.log(res);
            })
            .catch(function(err){
                console.log(err);
            })
        //axios请求返回的也是一个promise,跟踪错误只需要在最后加一个catch就可以了。
        //下面是关于同时发起多个请求时的处理
        axios.all([get1(), get2()])
        .then(axios.spread(function (res1, res2) {
            // 只有两个请求都完成才会成功,否则会被catch捕获
        }));

使用VUE的过渡效果,大家知道vue诞生的初衷就是为了做动画效果。我们使用自定义namemodal,实现弹框消失和出现时的缩放效果;

.modal-container {
    width: 520px;
    margin: 0 auto;
    background-color: #fff;
    border-radius: 0px;
    box-shadow: 0 2px 8px rgba(55, 55, 55, .6);
    transition: all .3s ease;//设置最外层盒子的transition
 }
 .modal-enter {
    opacity: 0;
 }

 .modal-leave-active {
    opacity: 0;
 }

 .modal-enter .modal-container,
 .modal-leave-active .modal-container {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
 }

2.用户注册

用户注册流程仿照 花瓣网 注册流程,分为多个小的页面,通过VUEv-if控制每个页面的动态加载,不得不提的是在滑块插件运用的过程中出现找不到元素的问题,主要是插件脚本和vue初始化加载顺序的问题,VUE实例还未渲染到页面,插件脚本就已经执行,当然会找不到元素,所以我一开是运用的是VUW声明周期钩子mouted,在页面实例加载完成后,加载插件脚本,VUE API中的原话是el 被新创建的 vm. elrootmountedvm. el 也在文档内。;但是moutrd钩子每次页面刷新只能加载一次,所以后来我换成了watch动态监听事件,这样每次参数改变都会触发事件,调用验证滑块插件;

详细代码请查看 git,戳这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值