Spring Boot [Vue + Vue CLI3 + Vant 快速构建你的移动商城]

导读

记录一次基于原有的后端api构建移动端商城,参照已有的安卓应用UI设计图开发。 技术选型 后端 Spring Cloud OAuth2 + Spring Cloud Eureka + Spring Boot 前端 Vue + Vue Router + Vue CLI3 + Vant ;移动商城从技术选型到项目上线花费一个星期后期优化测试花费3天, 团队规模2人 14人天 后端api基于原有的安卓api 后续增加了一些没有的接口 工作划分3天页面开发 4天对接联调测试 在这期间使用了移动端页面选型使用了有赞的Vant节省了很多时间 Vant 大法好 哈哈

开始

思路

将静态页面部署到阿里云oss上 配置我们自己的域名; 静态页面通过OAuth2密码模式登录 获取Token 携带Token 请求api网关

前后端分离

因为部署在不同的域名下存在跨域问题后台需显示的声明
如 api 中

ResourceServer 需要添加 .cors()

@Configuration
@EnableResourceServer
public class ResourceServerConfig  extends ResourceServerConfigurerAdapter  {

    /**
    * 省略其他
    **/
    
    @Override
    public void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().antMatchers("/user/**", "/upload", "/version").permitAll()
                .and().cors() // 
                .and().csrf().disable()
                .exceptionHandling()
                .authenticationEntryPoint((request, response, authException) -> response.sendError(HttpServletResponse.SC_UNAUTHORIZED))
                .and()
                .authorizeRequests()
                .anyRequest().authenticated()
                .and()
                .httpBasic();
    }
}

MvcConfig 中

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("http://m.xx.com", "http://localhost:8080")
                .allowedMethods("*")
                .allowedHeaders("*")
                .allowCredentials(true).maxAge(3600);
    }
}

页面效果

首页
分类
商品详情
购物车
个人中心
后台效果

优化

还在进行中 使用PWA对其改造 ,目前仅支持谷歌浏览器 百度浏览器 新版的safari 获得接近与原生应用的体验 目前只落地了可以添加主屏幕启动 后期在加入缓存 提升用户体验及减小后端压力

参考资料

vant 文档
Vue CLI3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值