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


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中的事件
Sep 23 Javascript
用Javascript实现UTF8编码转换成gb2312编码
Dec 22 Javascript
javascript针对DOM的应用分析(二)
Apr 15 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
Sep 16 Javascript
jQuery截取指定长度字符串的实现原理及代码
Jul 01 Javascript
两种js监听滚轮事件的实现方法
May 13 Javascript
Web 开发中Ajax的Session 超时处理方法
Jan 19 Javascript
jQuery实现ajax无刷新分页页码控件
Feb 28 Javascript
Vue中render函数的使用方法
Jan 31 Javascript
Vue中this.$router.push参数获取方法
Feb 27 Javascript
小程序实现人脸识别功能(百度ai)
Dec 23 Javascript
每周一练 之 数据结构与算法(Stack)
Apr 16 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
在PHP3中实现SESSION的功能(一)
2006/10/09 PHP
PHP 八种基本的数据类型小结
2011/06/01 PHP
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
JS中获取数据库中的值的方法
2013/07/14 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
AngularJS日程表案例详解
2017/08/15 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
python生成随机mac地址的方法
2015/03/16 Python
Python返回真假值(True or False)小技巧
2015/04/10 Python
python requests 库请求带有文件参数的接口实例
2019/01/03 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
python实现翻译word表格小程序
2020/02/27 Python
完美解决jupyter由于无法import新包的问题
2020/05/26 Python
用python批量下载apk
2020/12/29 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
html5利用canvas绘画二级树形结构图的示例
2017/09/27 HTML / CSS
澳大利亚巧克力花束和礼品网站:Tastebuds
2019/03/15 全球购物
DataReader和DataSet的异同
2014/12/31 面试题
2014年党务公开方案
2014/05/08 职场文书
商场消防安全责任书
2014/07/29 职场文书
2015年校长新年寄语
2014/12/08 职场文书
工程部岗位职责范本
2015/04/11 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server