学习一段时间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}}

下篇给大家介绍  Vue.js 实现微信公众号菜单编辑器功能(二)

总结

以上所述是小编给大家介绍的Vue.js 实现微信公众号菜单编辑器功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

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

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

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

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

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

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

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

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

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

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

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

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

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

  7. h5+js调取相机做取景框_使用Vue.js开发微信小程序:开源框架mpvue解析

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

  8. Laravel6.0 + vue.js + elementUI + 微信小程序 实现沃尔玛扫码购

    本次项目使用 Laravel6.0 + vue.js + elementUI + 微信小程序 实现沃尔玛扫码购 项目设计-接口 本次项目所有接口使用 laravel 框架实现. 项目设计-后台 后台开 ...

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

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

最新文章

  1. C#入门面向对象编程(委托的使用)
  2. Java如何以及为什么使用Unsafe?
  3. DateTimeFormatInfo 类
  4. 游标循环读取的正确逻辑_千分尺的正确使用方法原来是这样?我用了那么多年都用错了...
  5. 搭建个人博客,还有比这更快的?
  6. 亚洲新首富出炉!富豪榜单大洗牌,马云3年来首次跌出中国前三
  7. asp判断ajax请求 -asp.net,一个asp注册验证用户名是否重复的Ajax实例
  8. linux utf8转gbk_「正点原子Linux连载」第四章开发环境搭建(2)
  9. guava 工具类及代码
  10. XPS文件转换器Speedpdf——XPS转PDF免费工具
  11. cfa三级真题和mock_cfa三级要看哪些书?
  12. android移植大作游戏,这款steam移植的1GB大作,或许是今年最有氛围的悬疑游戏
  13. 多家银行手机转账现高危漏洞 ,用户资金或被非法窃取
  14. 对话“1024程序员节”嘉宾 ——RT-Thread 创始人熊谱翔
  15. 两年数据对比柱形图_如何用excel制作漂亮的图表——柱形图篇
  16. (C++)使用链表编写图书管理系统
  17. Power Designer:正向构建数据库数据库逆向工程SQL生成数据库报表
  18. JAVAEE基础第一节
  19. linux dhcp 4.3编译,关于在嵌入式Linux下编译dhcp报错“cannot check for file existence when cross compiling”的初步研究...
  20. 一些常用文献管理软件的比较与总结

热门文章

  1. cache在计算机中代表什么,cache是什么意思,计算机中cache是什么意思
  2. 圈排序——python
  3. 软件版本GA,RC,Demo,Build意思
  4. created和mounted的区别
  5. vue3使用setup代替created
  6. createjs图片不清晰的坑
  7. Lua ipairs、pairs
  8. 软件性能测试方案模板,性能测试方案模板
  9. xss labs 挑战之旅
  10. SAP 工序控制码 设置关键工序