⽂件管理器组件的实现(考察css,js,vue)

UI图

在这里插入图片描述

需求

在这里插入图片描述

思路

个人想法,不代表是正确思路

代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>

    <style>
        html,body{
            padding: 0;
            margin:0;
        }
        .element{
            margin-left: 50px;
            margin-top: 50px;
            width: 600px;
            height: 500px;
            border: 1px solid #eee;
        }
        header{
            border-bottom: 1px solid #eee;
            padding: 10px 5px 10px;
        }
        ul{
            list-style: none;

        }
        .list-view li{
            padding-left:10px;
            padding: 10px 0;
        }
        .grid-view{
            padding: 0 5px;
            display: grid;
            margin-top:10px;
            grid-row-gap: 20px;
            grid-column-gap: 20px;
            grid-template-columns: 1fr 1fr 1fr 1fr 1fr;

        }
        .grid-view li{
            text-align: center;
            height: 50px;
            background-color: #eee;

        }
     
    </style>
</head>

<body>
    <div id="app">
        <div class="element">
            <header>
                <button @click="changeListStyle=true">列表视图</button>
                <button @click="changeListStyle=false">网格视图</button @click="changeList">
                <input @input="changeList"/>
            </header>
            <main>
                <ul :class="[changeListStyle?'list-view':'grid-view']">
                    <li  v-for="item in testList" :key="item.id">{
   
   {item.value}}</li>
                </ul>
            </main>
        </div>
    </div>

  
    <script src="../base-api/vue.js"></script>
    <script>
        let vm = new Vue({
            el: '#app',
            data: {
                changeListStyle:true,
                testList:[],
                realList:[
                    {
                        id:2,
                        value:"test2.txt"
                    },
                    {
                        id:1,
                        value:"test1.txt"
                    },
                  
                    {
                        id:3,
                        value:"test3.txt"
                    },
                    {
                        id:4,
                        value:"test4.txt"
                    },
                    {
                        id:5,
                        value:"test5.txt"
                    },
                    {
                        id:6,
                        value:"test6.txt"
                    },
                ]
            },
            created() {
                /* 默认排序 */
                this.sort()
            },
            methods: {
                /* 改变列表 */
                changeList(event){                    
                    this.testList= this.realList.filter(item=>item.value.includes(event.target.value))
                },
                /* 默认排序 */
                sort(){
                    this.testList=this.realList.sort((a,b)=> a.value > b.value ?1:-1);
                }
                
            },
        });
    </script>
</body>

<html>

猜你喜欢

转载自blog.csdn.net/Sheng_zhenzhen/article/details/108678259
今日推荐