由于我是做后端的,一直没有做过前端的页面,以前在学校图书馆看的都是jsp技术,几乎是把java代码嵌套在前端界面。后面出来实习了才发现,jsp是真的落后了。现在的大学和实际工作所需偏差太大了,没办法。后面接触到前端,是在实习的第二家公司。那时候除了写后端接口,还得把PC端得管理界面写出来。因为前端模板用到的是springboot的thymeleaf技术。开源框架是若依,代码一般都是能直接生成的。倒也是捣鼓过一些前端的东西。这几天想要帮别人做一个商品展示页面。功能相对比较简单,也是没有太多要求。

我们现在这家公司用的是angular,这个东西这么说,还是比较庞大的,不太好搭建环境。最后就选择了用uni-app开发,相关技术就是vue了。

首先是参考了uni-app的一个插件:瀑布流商品展示 ,不得不说,这个页面还挺好看,特别是开箱即用,对我这种特别友好。

由于上面那个作者没有做刷新,后面我就加了一个手动刷新数据的下一页功能,然后又给移动端添加了下拉刷新的功能。参考: uni-app实现上拉加载,下拉刷新(下拉带动画)

整体问题不是很多,但是要整合两者,还是花了一点时间。先看最终效果图

PC端(手动点下一页):

移动端(下拉刷新):

移动端(下拉刷新,两行适配):

细心的人就能看出来,前往购买按钮还没对齐,不过要求没那么高,所以这个留着以后在解决。现在说一下项目的开发以及开发完了,这么部署到服务器上。

后端:后端我是用idea开发,主要做的事情就是从数据库查询数据返回给前端,用mybatis-puls做分页,这些数据从哪里来呢?大家百度:淘宝联盟 。就能找到相关接口了。我的做法是做个定时任务,每天凌晨三点,去拉相关接口的数据更新到数据表中。

核心接口:定时任务接口说明

清空表代码:

truncate table shoppinglist(表名)

注意事项:

RestTemplateConfig 使用http发送请求,需要配置(这些配置,百度上都是一样的)

MybatisPlusConfig    使用mybtis-plus分页,要在里面添加分页插件

@MapperScan("com/chonghuzhuang/designmode/dao/mapper")  扫描mapper文件所在的文件夹

maven打包如果出现插件报错,要添加下面这个配置到pom.xml中

<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>

如果运行报错信息为找不到XXXmapper.xml文件,需要添加下面这个配置到pom.xml中

<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>

然后就是数据库:其实应该用驼峰命名,但是时间太赶了,为了保持一致,我就偷懒了,然后在返回数据的时候,在做了转换,转换也不严谨,要是是为了配合上面的插件,然后就没对数据进行大改,后面再优化了

后端基本上就是这样了,下面来看前端

前端使用uni-app开发,前端懂的不多,不太知道哪里是重点

首先是发送请求到后端,获取数据,newsList是测试数据,真正用到的是list

然后拿到数据,就渲染到前端界面

前往购买的数据,在后端返回的本来就是一个链接,我们直接在新窗口打开即可

前端拿到加载的数据,但是界面上却没有渲染出效果,此时我们要强制渲染一下

其他就没什么需要注意的了。开发完成,调试没有问题,就部署到服务器上。

uni-app打包教程网上有很多,我就不细说了

打包完成,我们得到一个static和html文件

我们只需要把这个放到服务器上就可以了。注意,网上很多说放到服务器根目录下,这个容易误导别人。我服务器上部署的是tomcat,因此这个根目录指的就是webapp下。后端用maven打包成jar包,放到指定目录,然后在cmd中执行java -jar xxx.jar (百度springboot打jar包,就有很详细的教学了)。

这里需要注意的是,我们后端单独打包成一个服务,需要一个接口,比如我后端用的接口是9015,我就要去阿里云的后台,把9015端口打开(百度阿里云服务器开放指定端口)。

为什么很多步骤我都叫你们百度呢,因为我现在把详细步骤放出来,软件更新了,那些步骤的位置也很可能回发送变化,所以还是去百度看最新的操作步骤。

最后附上没优化之前的项目,各种bug,各种丑哭

页面没有做适配

<a>标签红配蓝,真心觉得不好看,所以后面才换成按钮点击世界打开新窗口

这个是快完工的了

哈哈,水平有限,其他翻车现场,就不放出来了。经过这次,也对前后端分离有了更深一步的实践,不得不说,vue真是方便了很多事情。uni-app对我来说也是一个福音。作为一个后端开发人员,特别喜欢这些能快速上手的技术,这样自己写好接口,也能捣鼓一下前端的页面来对接接口了。最后感谢那些开箱即用的大佬,给我们创造了一个很好用的轮子。这个项目,后面如果有时间优化,我就放到我的gitee上面,给后面的新人练练手也是很不错的选择。

记录第一次完整的uni-app开发经验的更多相关文章

  1. 无框架完整搭建安卓app及其服务端(一)

    技术背景: 我的一个项目做的的是图片处理,用 python 实现图片处理的核心功能后,想部署到安卓app中,但是对于一个对安卓和服务器都一知半解的小白来说要现学的东西太多了. 而实际上,我们的项目要求 ...

  2. 抖音短视频爆火的背后到底是什么——如何快速的开发一个完整的直播app

    前言 今年移动直播行业的兴起,诞生了一大批网红,甚至明星也开始直播了,因此不得不跟上时代的步伐,由于第一次接触的原因,因此花了很多时间了解直播,今天我来教你从零开始搭建一个完整的直播app,希望能帮助 ...

  3. Android通用框架设计与完整电商APP开发系列文章

    作者|傅猿猿 责编|Javen205 有福利 有福利 有福利 鸣谢 感谢@傅猿猿 邀请写此系列文章 Android通用框架设计与完整电商APP开发 课程介绍 [导学视频] [课程详细介绍] 以下是部分 ...

  4. 记录第一次在egret项目中使用Puremvc

    这几天跟着另一个前端在做一个小游戏,使用的是egret引擎和puremvc框架,这对于我来说还是个比较大的突破吧,特此记录下. 因为在此项目中真是的用到了mvc及面向对象编程,值得学习 记录第一次在e ...

  5. uni app中使用自定义图标库

    项目中难免会用到自定义图标,那在uni app中应该怎么使用呢? 首先, 将图标目录放在static资源目录下: 在main.js中引入就可以全局使用了 import '@/static/icon-o ...

  6. uni app 零基础小白到项目实战-1

    uni-app是一个使用vue.js开发跨平台应用的前端框架. 开发者通过编写vue.js代码,uni-app将其编译到Ios,android,微信小程序等多个平台,保证其正确并达到优秀体验. Uni ...

  7. 记录----第一次使用BFS(广度搜索)学习经验总结

    学习经验记录与分享—— 最近在学习中接触到了一种解决最短路径的实用方法----BFS(广度搜索),在这里总结并分享一下第一次学习的经验. 首先第一个要了解的是"queue"(队列函 ...

  8. 9个完整android开源app项目

    一.photoup 介绍: photoup 是一款开源的相册类app,主要功能是将本地图片提交到facebook上去,虽然他的功能和facebook的远程服务相关,但是本身是可以被当作一款 相册应用的 ...

  9. 安卓学习记录(五)——体温表APP.2

    一.项目结构 二.源码 1.数据层 db+dao+bean package com.example.tem.db; import android.content.Context; import and ...

随机推荐

  1. 关于YiII框架的扩展memcache中set设置时间就get查询失效的解决方案(版本是1.1.20)

    0x01 前言 在使用Yii框架的扩展memcache缓存的时候,存储数据有一个set方法,来看一下set方法的原型: public boolean set(string $id, mixed $va ...

  2. JSON对象与字符串的互换——JSON.parse()和JSON.stringify()

    parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...

  3. XCTF-fakebook

    fakebook stm的fakebook,乍一看还以为是facebook,果然fake 看题 有登录和注册两个功能点 看了下robots.txt,发现有备份文件 果断下载,内容如下 这里的blog在 ...

  4. (CV学习笔记)看图说话(Image Captioning)-2

    实现load_img_as_np_array def load_img_as_np_array(path, target_size): """从给定文件[加载]图像,[缩 ...

  5. 获取InputStream对象的方法

    获取InputStream对象的方法 getResourceAsStream(String path) 默认path路径位于Class所在Module的src目录下 . InputStream is ...

  6. Java学习之jackson篇

    Java学习之jackson篇 0x00 前言 本篇内容比较简单,简单记录. 0x01 Json 概述 概述:JSON(JavaScript Object Notation, JS 对象简谱) 是一种 ...

  7. 【敏杰开发】Beta阶段事后分析

    [敏杰开发]Beta阶段事后分析 设想和目标 Q 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付 ...

  8. Apache Hudi集成Spark SQL抢先体验

    Apache Hudi集成Spark SQL抢先体验 1. 摘要 社区小伙伴一直期待的Hudi整合Spark SQL的PR正在积极Review中并已经快接近尾声,Hudi集成Spark SQL预计会在 ...

  9. Docker Swarm(六)Label 节点标签与服务约束

    前言 多节点 Swarm 集群下,可能节点的配置不同(比如 CPU.内存等),部署着不同类型的服务(比如 Web服务.Job服务等),当这些服务以 Service 或者 Stack 的形式部署到集群, ...

  10. 任务相关的API函数-uxTaskGetSystemState

    uxTaskGetSystemState:此函数用于获取系统中所有的任务状态,每个任务的状态信息保存在一个TaskStatus_t类型的结构体里面.要使用此函数必须把 configUSE_TRACE_ ...