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


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中获得$.ajax()事件返回的值并添加事件的方法
Apr 15 Javascript
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
Dec 04 Javascript
什么是DOM(Document Object Model)文档对象模型
Mar 05 Javascript
javascript模拟实现ajax加载框实例
Oct 15 Javascript
webpack入门+react环境配置
Feb 08 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
Nov 18 Javascript
js canvas实现二维码和图片合成的海报
Nov 19 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
Mar 27 Javascript
150行Node.js实现的dns代理工具
Aug 02 Javascript
vue.js iview打包上线后字体图标不显示解决办法
Jan 20 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
Sep 05 Javascript
在webstorm中配置less的方法详解
Sep 25 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
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
PHP序列化操作方法分析
2016/09/28 PHP
PHP PDOStatement::columnCount讲解
2019/01/30 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
Js与Jq 获取页面元素值的方法和差异对比
2015/04/30 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
2016/06/13 Javascript
js多个物体运动功能实例分析
2016/12/20 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
使用Bootstrap和Vue实现用户信息的编辑删除功能
2017/10/25 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
JavaScript变量基本使用方法实例分析
2019/11/15 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
2020/05/08 Javascript
原生JavaScript实现刮刮乐
2020/09/29 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
python接入支付宝的实例操作
2020/07/20 Python
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
类和结构的区别
2012/08/15 面试题
临床医学专业学生的自我评价分享
2013/11/21 职场文书
手机业务员岗位职责
2013/12/13 职场文书
质量负责人任命书
2014/06/06 职场文书
大专生求职信
2014/06/29 职场文书
学校师德师风整改措施
2014/10/27 职场文书
转让协议书
2015/01/27 职场文书