小程序页面动态配置实现方法


Posted in Javascript onFebruary 05, 2019

小程序可以根据管理后台配置动态更新展示内容,如实现下面新鲜事栏目图片的来源的可配置,点击跳转url的可配置。

小程序页面动态配置实现方法

实现方案

1后端创建一个map结构的数据表,表结构如下:

小程序页面动态配置实现方法

2 管理后台根据不同业务设定不同的key和value,更新数据库

如key:ad1url value:a.png

如果需要更新页面图片,只需更新ad1url对应的value

3 小程序根据对应业务key获取对应的配置项,更新页面显示

技术栈

后端接口服务:SpringBoot Mybatis MySql

管理后台:vue

前端:小程序

代码实现

后端接口

为了保证key的唯一性,key在数据库设置为unique属性,新增和更新功能通过以下sql语句实现,主要通过replace into实现配置项的唯一

@Insert("<script>" +
   "REPLACE INTO `rental`.`t_config`(`key`, `value`) VALUES" +
   "<foreach" +
   " collection=\"list\" item=\"item1\" index=\"index\" separator=\",\">" +
   "(#{item1.key}, #{item1.value})" +
   "</foreach>" +
  "</script>")
 @Options(useGeneratedKeys = true, keyProperty = "configId", keyColumn = "configId")

api设计

一开始想通过传如list数据给后端实现配置项的批量插入功能,发现后端数据一直接受不到,故而退而求其次,通过json字符串实现vue(网络库使用axios)调用后端接口

@ApiOperation(value = "新增或更新配置列表")
@RequestMapping(value = "/add_or_update_config_list", method = RequestMethod.POST, 
    produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseBean<String> addOrUpdateConfigList(String list) {
 long result = configService.batchInsertOrUpdate(JSONObject.parseArray(
  list,Config.class));
 ......
}

管理平台

管理平台用vue开发,网络框架采用axios,列表数据通过json字符串传递给后端

let config1 = {key: "ad1Url", value: this.formData.ad1Url};
let config2 = {key: "ad2Url", value: this.formData.ad2Url};
let config3 = {key: "adClick1", value: this.formData.adClick1};
let config4 = {key: "adClick2", value: this.formData.adClick2};
let configList = [config1, config2, config3, config4];
let result = await addConfigList({list: JSON.stringify(co
nfigList)});
......

小程序

小程序调用后端接口返回所有配置项,具体业务根据具体业务key获取配置项

getConfigList: function () {
 var that = this;
 wx.request({
  url: constant.HOST + '/config/get_config_list',
  method: 'GET',
  header: {
  'content-type': 'application/json'
  },
  complete: function (res) {
 
  },
  success: function (res) {
  console.log("config list response:" + JSON.stringify(res));
  that.setData({ configList: res.data.data});
  }
 });
 },
  
goAd1: function(){
 wx.navigateTo({
  url: '/pages/webview/webview?url=' + this.data.configList.adClick1
 })
},

总结

这个功能我在自己的小程序开发过程中设计的页面配置实现思路,主要遇到了两个小问题:1 如果保证key的唯一性 2 前后端批量数据的传输问题;希望能给遇到同样问题的小伙伴一些启示,如果有更好的方案,欢迎一起讨论

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
枚举JavaScript对象的函数
Dec 22 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
Mar 01 Javascript
jQuery实现新消息在网页标题闪烁提示
Jun 23 Javascript
超赞的jQuery图片滑块动画特效代码汇总
Jan 25 Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 Javascript
localStorage实现便签小程序
Nov 28 Javascript
微信小程序 判断手机号的实现代码
Apr 19 Javascript
基于BootStrap实现简洁注册界面
Jul 20 Javascript
微信小程序开发教程之增加mixin扩展
Aug 09 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
Apr 19 Javascript
vue 出现data-v-xxx的原因及解决
Aug 04 Javascript
JS实现京东商品分类侧边栏
Dec 11 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
Feb 02 #Javascript
AngularJS实现的自定义过滤器简单示例
Feb 02 #Javascript
vue实现的树形结构加多选框示例
Feb 02 #Javascript
javascript中floor使用方法总结
Feb 02 #Javascript
JS对象和字符串之间互换操作实例分析
Feb 02 #Javascript
Vue+Element UI+Lumen实现通用表格分页功能
Feb 02 #Javascript
JS基于ES6新特性async await进行异步处理操作示例
Feb 02 #Javascript
You might like
PHP Socket 编程
2010/04/09 PHP
浅谈php的TS和NTS的区别
2019/03/13 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
用js格式化金额可设置保留的小数位数
2014/05/09 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
jqGrid中文文档之选项设置
2015/12/02 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
Vue插件之滑动验证码
2019/09/21 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
用python实现学生管理系统
2020/07/24 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
HTML5中微数据概述及在搜索引擎中的使用举例
2013/02/07 HTML / CSS
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
新闻专业个人求职信
2013/12/19 职场文书
创建卫生先进单位实施方案
2014/03/10 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
义诊活动总结
2015/02/04 职场文书
太空授课观后感
2015/06/17 职场文书
七年级生物教学反思
2016/02/20 职场文书
Python制作表白爱心合集
2022/01/22 Python
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫
浅谈Redis缓冲区机制
2022/06/05 Redis