layui+vue 菜单的问题

发布于 2021-12-03 12:18:45 字数 2438 浏览 848 评论 7

本人layui、vue初学者.

要实现的功能:通过vue组件代替静态页面的menu(菜单)

静态页面代码如下:

<div class="layui-side layui-bg-black">
        <div class="layui-side-scroll">
            <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
            <ul class="layui-nav layui-nav-tree" lay-filter="test">
                <li class="layui-nav-item layui-nav-itemed" v-for="">
                    <a class="" href="javascript:">管理者视图1</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:">列表一</a></dd>
                        <dd><a href="javascript:">列表二</a></dd>
                        <dd><a href="javascript:">列表三</a></dd>
                        <dd><a href="">超链接</a></dd>
                    </dl>
                </li>
                <!--<menu-item></menu-item>-->
            </ul>
        </div>
    </div>

操作工程如下:

1、layui菜单部分,初始化完成后会在</ul>中增加一个

<span class="layui-nav-bar" style="top: 22.5px; height: 0px; opacity: 0;"></span>

2、我用vue替换后,代码如下:

<div class="layui-side layui-bg-black">
        <div class="layui-side-scroll">
            <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
            <ul class="layui-nav layui-nav-tree" lay-filter="test">
                <menu-item></menu-item>
            </ul>
        </div>
</div>
var menuItem = Vue.extend({
    name:'menu-item',
    props:{item:{},index:0},
    template:[
        '<li class="layui-nav-item layui-nav-itemed">',
        '<a class="" href="javascript:">管理者视图</a>',
        '<dl class="layui-nav-child">',
        '<dd v-for="n in 3"><a href="javascript:">列表{{n}}</a></dd>',
        '</dl>',
        '</li>'
    ].join('')
});
//注册菜单组件
Vue.component('menu-item',menuItem);

var vm = new Vue({
    el:'#app'
})

3、发现</ul>上一行增加的代码为:

<span class="layui-nav-bar"></span>

缺少样式 ,导致菜单无法使用。怀疑是html先初始化,这时候没有<li>导致的。但不知如何解决

请各位予以指导

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

不乱于心 2021-12-08 15:15:33

最后的代码能贴出来看下吗 我layui vue小菜,刷新页面左侧菜单有时候能点开 有时候点不开!多谢!

 

永不分离 2021-12-08 15:15:29

我这里说个特别情况,供后来的人参考.

尽量要在VUE把menu-item渲染完之后再执行layui的初始化代码.如果在menu-item渲染之前执行layui的初始化代码,那么layui检测不到尚未渲染出来的DOM

比如,menu-item是通过ajax请求再通过vue渲染出来的.

 

刘备忘录 2021-12-08 15:14:57

一语道破天机,感谢

明媚如初 2021-12-08 15:14:19

再请教个问题,layui能同时适配pc和手机端吗?

囚你心 2021-12-08 15:03:03

回复
可以的

顾挽 2021-12-08 13:43:27

回复
layui 有栅格系统,可以做响应式

离不开的别离 2021-12-08 11:32:49

element.init()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文