这次给大家带来Vue.js实现微信公众号菜单编辑器步骤详解(上),Vue.js实现微信公众号菜单编辑器的注意事项有哪些,下面就是实战案例,一起来看一下。

学习一段时间Vue.js,于是想尝试着做一个像微信平台里那样的菜单编辑器,在这里分享下

具体样式代码查看项目github

创建一个vue实例

var app = new Vue({

el: '#app-menu',//挂载到对应的DOM元素

data: {

weixinTitle: 'Vue.js公众号菜单',

//菜单对象

menu: {

"button": [

{

"name": "主菜单1",

"sub_button": []

},

{

"name": "主菜单2",

"sub_button": []

},

{

"name": "主菜单3",

"sub_button": [

{

"name": "子菜单1"

}]

}]

},

selectedMenuIndex:'',//当前选中菜单索引

selectedSubMenuIndex:'',//当前选中子菜单索引

},

methods: {

}

})

将菜单数据渲染到模版上

这里使用v-if和v-for将数据渲染到模版上,最多会有3个主菜单以及每个主菜单最多会有5个子菜单。

{{weixinTitle}}

  • {{ btn.name }}

    • {{sub.name}}

给vue实例添加方法

在vue实例中给methods对象中添加我们自定义的方法methods: {

//选中主菜单

selectedMenu:function (i) {

this.selectedSubMenuIndex = ''

this.selectedMenuIndex = i

},

//选中子菜单

selectedSubMenu:function (i) {

this.selectedSubMenuIndex = i

},

//选中菜单级别

selectedMenuLevel: function () {

if (this.selectedMenuIndex !== '' && this.selectedSubMenuIndex === '') {

//主菜单

return 1;

} else if (this.selectedMenuIndex !== '' && this.selectedSubMenuIndex !== '') {

//子菜单

return 2;

} else {

//未选中任何菜单

return 0;

}

},

//添加菜单

//参数level为菜单级别,1为主菜单、2为子菜单

addMenu:function (level) {

if (level == 1 && this.menu.button.length < 3) {

this.menu.button.push({"name": "菜单名称",

"sub_button": []

})

this.selectedMenuIndex = this.menu.button.length - 1

this.selectedSubMenuIndex = ''

}

if (level == 2 && this.menu.button[this.selectedMenuIndex].sub_button.length < 5) {

this.menu.button[this.selectedMenuIndex].sub_button.push({

"name": "子菜单名称"

})

this.selectedSubMenuIndex = this.menu.button[this.selectedMenuIndex].sub_button.length - 1

}

}

}

给菜单绑定方法

当点击菜单触发selectedMenu方法,点击添加按钮触发添加addMenu方法。使用v-on来监听事件,它的缩写是@

监听点击事件@click ,为了防止子菜单点击事件冒泡的主菜单,则使用.stop事件修饰符来阻止冒泡@click.stop

使用v-bind:class来添加切换菜单选中时的class。:class为缩写

  • {{ btn.name }}

    • {{sub.name}}

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

微信公众平台菜单编辑php,Vue.js实现微信公众号菜单编辑器步骤详解(上)相关推荐

  1. vue.js实战 第一篇 第七章 组件详解_组件通信

    正向数据传递props <div id="app"><my-component message="来自父组件的数据"></my-c ...

  2. 叮咚,您有一封告白信件待查收(原生HTML+CSS+JS绘制表白信件,代码+链接+步骤详解)

     马上就要5月20号啦,准备好如何向心仪的她/他表白了嘛!特此出一篇告白小信件,效果图如下.纯html+css绘制,包含详细教程注释,干货满满哦. 链接置于文章结尾总结处. 文章目录 一.叮咚!查收您 ...

  3. 微信公众平台菜单编辑php,如何使用Vue.js实现微信公众号菜单编辑器(思路详解)...

    这次给大家带来如何使用Vue.js实现微信公众号菜单编辑器(思路详解),使用Vue.js实现微信公众号菜单编辑器的注意事项有哪些,下面就是实战案例,一起来看一下. 学习一段时间Vue.js,于是想尝试 ...

  4. 微信公众号菜单html5,Vue.js 实现微信公众号菜单编辑器功能(一)

    学习一段时间Vue.js,于是想尝试着做一个像微信平台里那样的菜单编辑器,在这里分享下 具体样式代码查看项目github 创建一个vue实例 var app = new Vue({ el: '#app ...

  5. 公众号 菜单 代码 php,如何使用Vue.js实现微信公众号菜单编辑器(案例代码)

    这次给大家带来如何使用Vue.js实现微信公众号菜单编辑器(案例代码),使用Vue.js实现微信公众号菜单编辑器的注意事项有哪些,下面就是实战案例,一起来看一下. 实现菜单删除方法 在vue实例中添加 ...

  6. vue.js 在微信公众号内实现视频播放

    环境:我司从事在线教育行业,想要将老师的讲课视频实现在线播放并监控用户播放时长 关键词:vue.js.微信公众号.video视频播放 1. 微信公众号内可以直接使用video进行视频播放 2. 微信公 ...

  7. 转载收藏之用 - 微信公众平台开发教程(三):微信公众平台开发验证

    要对接微信公众平台的"开发模式",即对接到自己的网站程序,必须在注册成功之后(见Senparc.Weixin.MP SDK 微信公众平台开发教程(一):微信公众平台注册),等待官方 ...

  8. mpvue 微信小程序_使用Vue.js开发微信小程序:开源框架mpvue解析

    戳蓝字"CSDN云计算"关注我们哦! 作者 | 成全 责编 | 阿秃 转自 | 美团技术团队企业博客 前言 mpvue是一款使用Vue.js开发微信小程序的前端框架.使用此框架,开 ...

  9. 用Vue.js开发微信小程序:开源框架mpvue解析

    前言 mpvue 是一款使用 Vue.js 开发微信小程序的前端框架.使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为 H5 和小程序提供了代码复用的能力.如果想将 H5 项目改造为小程 ...

最新文章

  1. PL-VINS:实时基于点线的单目惯导SLAM系统
  2. java学习笔记2022.1.15
  3. java 根据类名示例化类_Java类类getEnclosingClass()方法及示例
  4. oracle 中WITH AS,oracle的with as用法
  5. 【Objective-C】Objective-C语言的动态性
  6. 基于 wke 的浏览器:如何实现 js 和 c++ 的互相调用
  7. 适用于Android的最佳笔记应用程序以及如何制作自己的应用程序
  8. 微信小程序 宠物论坛1
  9. mysql information_schema库结构
  10. 一个电商项目的功能模块梳理
  11. 数学建模学习(47):灰色预测模型案例一(代码模板+模型建立)
  12. ie网站无法找到服务器,IE中无法找到已经安装的个人证书
  13. 抽象类+接口+内部类作业题及答案
  14. 边缘检测 从Roberts到Canny算子
  15. 数据流图业务流程图之间的区别
  16. 人工智能人工神经网络,神经元网络 人工智能
  17. mysql编码修改utf8_修改数据库mysql字符编码为UTF8
  18. 常见博客程序的市场有这几个
  19. 设置电子围栏 高德地图_地理围栏-API文档-开发指南-Web服务 API | 高德地图API
  20. php psy,PsySHPHP交互式控制台

热门文章

  1. PHP Class各种方法和类的使用
  2. oracle的系统字符集,Oracle操作系统和支持-字符集
  3. 计算机内存条多大容量,电脑内存条到底怎么选?选多大容量最合适?
  4. 销量预测模型案例实战
  5. hive优化——并行执行
  6. 人生苦短python作伴_人生苦短,我用python
  7. 洛谷P2851 [USACO06DEC]The Fewest Coins G 题解
  8. 完整的OpenDDS的发布订阅编写及源码(Windows)
  9. 数码显示实验报告C语言,数码管动态显示实验报告
  10. 谷歌掐架甲骨文:揭秘Java侵权案始末