vue實現上一題下一題的功能


最近在看vue實戰這本書,小白一個,啥也不懂.

看書很痛苦,最主要的是容易犯困,正好書上有個實戰的內容叫問卷調查,用自己的想法實現了單選題這一部分.

1.每頁顯示一個題,點擊上一題,下一題進行切換

2.單選題不同的選項有不同的分值,點擊時會記錄當前選項是多少分,存在一個數組中了.

3.單選題有標題和選項,所以數據需要是二維數組了,這個可以自己先練習一下.

4.需要用到v-for的雙層循環,我是模版套的ul

5.num表示當前的頁數,index則是數組的大小,只顯示頁數和index相等的,所以就實現了每頁只顯示一個題的功能

<!DOCTYPE html>
<htm>
    <head>
        <script src="vue.min.js"></script>
    </head>
    <body>
        <div id="app">
            <template v-for="(book,index) in books">
                <div v-if="num===index">
                    <p>{{index+1}}-{{book.title}}</p>
                    <ul>
                        <li v-for="(b,index) in book.content" @click="choose(index)">{{b.title}}</li>
                    </ul>
                    
                    <p>-----------------------------------------------</p>
                </div>
               
            </template>
            <button @click="prex()">上一題</button>
            <button @click="next()">下一題</button>
            <p>{{num}}</p>
            <p>{{books.length}}</p>
            <p>本題得分: {{fen}}</p>
        </div>
    </body>
    <script>
        var app=new Vue({
            el:'#app',
            
            data:{
                num:0,
                fen:[],
                books:[
                    {
                        title:'邏輯思維',
                        content:[
                            {
                                title:'中等偏上',
                                fen:6
                            },
                            {
                                title:'中等水平',
                                fen:8
                            },
                            {
                                title:'低水平',
                                fen:2
                            }
                        ]
                    },
                    {
                        title:'計划能力',
                        content:[
                            {
                                title:'選項A',
                                fen:8
                            },
                            {
                                title:'選項B',
                                fen:15
                            }
                        ]
                    },
                    {
                        title:'執行能力',
                        content:[
                            {
                                title:'選項A',
                                fen:8
                            },
                            {
                                title:'選項B',
                                fen:15
                            },
                            {
                                title:'選項c',
                                fen:15
                            }
                        ]
                    }
                ],

            },
            methods:{
                next:function(){
                    if (this.num<this.books.length-1){
                        if (this.fen[this.num]>0){
                             this.num+=1;
                        }
                       
                    }
                    
                },
                prex:function(){
                    if(this.num===0) {
                        this.num=0;
                    }else{
                        this.num-=1;
                    }
                    
                },
                choose:function(index){
                    this.fen[this.num]=this.books[this.num].content[index].fen;
                }
            }
        })
    </script>
</htm>

代碼寫的很惡心,書只看到組件詳解這一章,沒有使用CSS,所以最終的效果如下圖

 

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM