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


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 相关文章推荐
use jscript List Installed Software
Jun 11 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
Dec 19 Javascript
JS实现日期加减的方法
Nov 29 Javascript
jQuery遍历Table应用示例
Apr 09 Javascript
javascript if条件判断方法小结
May 17 Javascript
jquery实现的Banner广告收缩效果代码
Sep 02 Javascript
js css+html实现简单的日历
Jul 14 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
Sep 20 Javascript
js字符串操作总结(必看篇)
Nov 22 Javascript
详解Angular5 服务端渲染实战
Jan 04 Javascript
Vue中使用canvas方法总结
Feb 12 Javascript
微信小程序实现多张图片上传功能
Nov 18 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
晶体管来复再生式二管收音机
2021/03/02 无线电
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
php生出随机字符串
2017/07/06 PHP
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
javascript 建设银行登陆键盘
2008/06/10 Javascript
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
javascript添加前置0(补零)的几种方法
2017/01/05 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
深入理解vue-loader如何使用
2017/06/06 Javascript
React Native中NavigatorIOS组件的简单使用详解
2018/01/27 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
深入理解Promise.all
2018/08/08 Javascript
在vue中给列表中的奇数行添加class的实现方法
2018/09/05 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
[04:40]DOTA2-DPC中国联赛1月26日Recap集锦
2021/03/11 DOTA
PHP实现发送和接收JSON请求
2018/06/07 Python
深入理解Django-Signals信号量
2019/02/19 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
Python包和模块的分发详细介绍
2020/06/19 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
国窖1573广告词
2014/03/21 职场文书
一岗双责责任书
2014/04/15 职场文书
计算机专业求职信
2014/06/02 职场文书
2015年招聘工作总结
2014/12/12 职场文书
手术室消毒隔离制度
2015/08/05 职场文书