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


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 相关文章推荐
鼠标图片振动代码
Jul 06 Javascript
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
Apr 06 Javascript
jquery struts 验证唯一标识(公用方法)
Mar 27 Javascript
node.js中的fs.closeSync方法使用说明
Dec 17 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
Mar 09 Javascript
用JavaScript实现页面重定向功能的教程
Jun 04 Javascript
在AngularJS中使用AJAX的方法
Jun 17 Javascript
JavaScript正则表达式的分组匹配详解
Feb 13 Javascript
javascript 动态样式添加的简单实现
Oct 11 Javascript
微信小程序 删除项目工程实现步骤
Nov 10 Javascript
图解JS原型和原型链实现原理
Sep 15 Javascript
vue3.0中使用element的完整步骤
Mar 04 Vue.js
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导出oracle库的php代码
2009/04/20 PHP
国外十大最流行的PHP框架排名
2013/07/04 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
Div自动滚动到末尾的代码
2008/10/26 Javascript
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
jquery获取input表单值的代码
2010/04/19 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
Python基于Matplotlib库简单绘制折线图的方法示例
2017/08/14 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
python爬取网易云音乐热歌榜实例代码
2020/08/07 Python
Python爬虫之Selenium设置元素等待的方法
2020/12/04 Python
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
YII2 全局异常处理深入讲解
2021/03/24 PHP
我的网上商城创业计划书
2013/12/26 职场文书
国贸专业的职业规划范文
2014/01/23 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
致青春观后感
2015/06/09 职场文书
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android