Vue v-for two-layer nesting second element event invalidation

problem description

using the v-for nesting of Vue, the rendered element has no problem with the first, and the second does not correspond to the click event.

the environmental background of the problems and what methods you have tried

related codes

/ / Please paste the code text below (do not replace the code with pictures)

            <li class="layui-nav-item" v-for="menu in menus">
                <a href="javascript:;" v-bind:data-url="menu.url" data-name="form" kit-loader><i v-bind:class="menu.icon" aria-hidden="true"></i>
                    <span> {{ menu.name }}</span>
                    <span class="layui-nav-more"></span>
                </a>
                <dl class="layui-nav-child" v-for="sub_menu in menu.childMenus">
                    <dd>
                        <a href="javascript:;" kit-target v-bind:data-url="sub_menu.url">
                            <i aria-hidden="true" v-bind:class="sub_menu.icon"></i><span> {{ sub_menu.name }}</span></a>
                    </dd>
                </dl>
            </li>
            
            
var menuList = new Vue({
    el:"-sharpmenu_list",
    data: {
        menus :  
        [{
            "icon": "fa fa-tasks",
            "id": "WORK_TASK",
            "name": "",
            "order": 0,
            "url": "create_task",
            "childMenus": [{
                "icon": "fa fa-crosshairs",
                "id": "CREATE_TASK",
                "name": "",
                "order": 0,
                "parentId": "WORK_TASK",
                "url": "create_task"
            }]
        }]
    }
})

what result do you expect? What is the error message actually seen?

the menu of the first li can be collapsed and expanded, but not the second.

Mar.28,2021

set a few more data elements when the, Vue new is done.
when the data changes, the view is re-rendered. It is worth noting that the properties that exist in the data are responsive only when the instance is created. That is, if you add a new attribute, such as:

vm.b = 'hi'
then changes to b will not trigger any view updates. If you know that you will need a property later, but it is empty or does not exist at first, then you only need to set some initial values. For example:

do you need this for the list of elements on the interface? There is only one element defined in data, and subsequent additions will not be rendered. When
is defined, put ten of them in it, delete all of them when you get the list dynamically, and those within 0,09 will be rendered.

Menu