美文网首页
树形结构递归/原生js实现/vue递归组件

树形结构递归/原生js实现/vue递归组件

作者: Raral | 来源:发表于2021-01-08 15:06 被阅读0次

    原生js实现递归渲染

    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <ul>
            <li>后台
                <!-- <ul>
                    <li>数据库</li>
                </ul> -->
            </li>
            <li>前端
                <!-- <ul>
                    <li>vue</li>
                </ul> -->
            </li>
        </ul>
    </body>
    <script>
        let treeData = [
            {
                name:"后台",
                children: [
                    {
                        name: "数据库",
                    }, {
                        name: "服务器",
                    }, {
                        name: "java",
                    }
                ]
            },{
                name:"前端",
                children: [
                    {
                        name: "vue",
                    }, {
                        name: "react",
                    }, {
                        name: "angular",
                    }
                ]
            }
        ]
        // 纯字符串拼接
        // let str = "";
        // str += "<ul>"
        // for(var i = 0; i < treeData.length; i ++) {
        //     str += "<li>" +  treeData[i].name  +
        //                 if(treeData[i].children.length > 0) {
        //                     for(var j = 0; j < treeData[i].children[j].length; j ++ ) {
        //                         "<ul>" +
        //                             "<li>" + treeData[i].children[j].name + "</li>" +
        //                          "</ul>"   
        //                     }
        //                 }
        //             + "</li>"
        // }
        // str +="</ul>"
        // document.body.innerHTML = str;
    
        // 递归 
        // let str = "";
        // function recur(tree) {
        //     for(var i = 0; i < tree.length; i ++) {
        //         str += `
        //             <ul>
        //                 <li>${tree[i].name}</li>
        //                ${tree[i].children.length > 0 && recur(tree[i].children)}
        //             </ul>
        //         `
        //     }
        // }
        // recur(treeData);
        // document.body.innerHTML = str;
    
        //
    
        var loop = (treeData) => {
            return treeData.map(e => {
                return  e.children?
                `<div>
                    <div>${e.name}</div>
                    <ul>
                        <li style="padding-left: 20px">${loop(e.children)}</li>
                    </ul>
                </div>
                `
            : 
            `
                <div>
                    ${e.name}
                </div>
            `
    
    
            })
        }
        var html = loop(treeData).join("");
        console.log(html);
        document.body.innerHTML = html
    
    
    
    </script>
    </html>
    

    Vue2.0递归组件

    相关文章

      网友评论

          本文标题:树形结构递归/原生js实现/vue递归组件

          本文链接:https://www.haomeiwen.com/subject/dplfaktx.html