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


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 相关文章推荐
jQuery Div中加载其他页面的实现代码
Feb 27 Javascript
一个简单的javascript类定义例子
Sep 12 Javascript
修改jQuery Validation里默认的验证方法
Feb 14 Javascript
jquery实现的一个导航滚动效果具体代码
May 27 Javascript
js操作label给label赋值及取label的值示例
Nov 07 Javascript
JavaScript中的包装对象介绍
Jan 27 Javascript
精通JavaScript的this关键字
May 28 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
Jul 27 Javascript
jQuery UI制作选项卡(tabs)
Dec 13 Javascript
Vue 路由 过渡动效 数据获取方法
Jul 31 Javascript
对vue v-if v-else-if v-else 的简单使用详解
Sep 29 Javascript
Vue Router中应用中间件的方法
Aug 06 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小教程之实现双向链表
2014/06/12 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
侧栏跟随滚动的简单实现代码
2013/03/18 Javascript
JS阻止用户多次提交示例代码
2014/03/26 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
nodejs后台集成ueditor富文本编辑器的实例
2017/07/11 NodeJs
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
Python函数学习笔记
2008/10/07 Python
Python中unittest用法实例
2014/09/25 Python
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
Python读写Excel表格的方法
2021/03/02 Python
全国税务系统先进集体事迹材料
2014/05/19 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
投标承诺函范文
2015/01/21 职场文书
2015年中个人总结范文
2015/03/10 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
个人更名证明
2015/06/23 职场文书
小学同学聚会感言
2015/07/30 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书
Redis的字符串是如何实现的
2021/10/24 Redis
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers