91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue怎么實現條件渲染與列表渲染

發布時間:2022-05-27 11:42:09 來源:億速云 閱讀:238 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Vue怎么實現條件渲染與列表渲染”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Vue怎么實現條件渲染與列表渲染”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

    一、Vue條件渲染

    v-show

        <!--使用v-show做條件渲染-->
        <h2 v-show="false">{{name}}</h2>
        <!--或-->
        <h2 v-show="1===3">{{name}}</h2>

    Vue怎么實現條件渲染與列表渲染

    舉例1

    Vue怎么實現條件渲染與列表渲染

    <div id="root">
        <h3>當前n值是{{n}}</h3>
        <button @click="n++">點我n+1</button>
    
        <div v-show="n===1">2020</div>
        <div v-show="n===2">2021</div>
        <div v-show="n===3">2022</div>
    </div>
    <script type="text/javascript">
        Vue.config.productionTip = false
        //創建vue實例
        new Vue({
            el: "#root",
            data: {
                name: "你好",
                n: 0
            }
        })
    </script>

    v-if

        <!--使用v-if做條件渲染-->
        <h2 v-if="false">{{name}}</h2>
        <h2 v-if="1===1">{{name}}</h2>

    Vue怎么實現條件渲染與列表渲染

    如果切換頻率高用 v-show,切換頻率低用 v-if

    v-else-if

    舉例2

    <div id="root">
        <h3>當前n值是{{n}}</h3>
        <button @click="n++">點我n+1</button>
    
        <div v-if="n===1">2020</div>
        <div v-else-if="n===1">2021</div>
        <div v-else-if="n===3">2022</div>
    </div>

    Vue怎么實現條件渲染與列表渲染

    可以看到 v-if、v-else-if 的邏輯 和 if-else if 的邏輯是相同的,一個符合下邊的代碼就不執行了

    v-else

    <div id="root">
        <h3>當前n值是{{n}}</h3>
        <button @click="n++">點我n+1</button>
    
        <div v-if="n===1">2020</div>
        <div v-else-if="n===1">2021</div>
        <div v-else-if="n===2">2022</div>
        <div v-else>某年</div>
    </div>

    v-if 與 template

    Vue怎么實現條件渲染與列表渲染

    <div id="root">
        <h3>當前n值是{{n}}</h3>
        <button @click="n++">點我n+1</button>
        <template v-if="n===1">
            <h3>2020</h3>
            <h3>2021</h3>
            <h3>2022</h3>
        </template>
    </div>

    小結

    條件渲染

    1、v-if

    寫法:

    (1).v-if="表達式”

    (2).v-else-if="表達式"

    (3).v-else="表達式"

    • 適用于:切換頻率較低的場景

    • 特點:不展示的DOM元素直接被移除

    • 注意: v-if可以和v-else-ifv-else一起使用,但要求結構不能被"打斷”

    2、v-show

    • 寫法:v-show="表達式"

    • 適用于:切換頻率較高的場景

    • 特點:不展示的DOM元素未被移除,僅僅是使用樣式隱藏掉

    3.備注:

    v-if的時,元素可能無法獲取到,而使用v-show一定可以獲取到

    v-if的時,元素可能無法獲取到,而使用v-show一定可以獲取到

    二、列表渲染

    v-show

    基本使用:

    Vue怎么實現條件渲染與列表渲染

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Vue初識</title>
        <script type="text/javascript" src="./js/vue.js"></script>
    </head>
    <body>
    <div id="root">
        <!--遍歷數組-->
        <h3>人員列表(遍歷數組)</h3>
        <ul>
            <li v-for="(p,index) in persons" :key="index">
                {{p.name}}--{{p.age}}
            </li>
        </ul>
        <!--遍歷對象-->
        <h3>貓咪信息(遍歷對象)</h3>
        <ul>
            <li v-for="(value,k) in cat" :key="k">
                {{k}}:{{value}}
            </li>
        </ul>
        <!--遍歷字符串-->
        <h3>遍歷字符串(用的少)</h3>
        <ul>
            <li v-for="(char,index) in str" :key="k">
                {{char}}-{{index}}
            </li>
        </ul>
        <!--遍歷指定次數-->
        <h3>遍歷指定次數(用的少)</h3>
        <ul>
            <li v-for="(index,number) in 5" :key="index">
                {{index}}-{{number}}
            </li>
        </ul>
    </div>
    <script type="text/javascript">
        Vue.config.productionTip = false
        //創建vue實例
        new Vue({
            el: "#root",
            data: {
                persons:[
                    {id:1,name:"張三",age:18},
                    {id:2,name:"李四",age:19},
                    {id:3,name:"王五",age:20},
                ],
                cat:{
                    name:"王大喵",
                    age:2,
                    color:"灰色"
                },
                str:"hello"
            }
        })
    </script>
    </body>
    </html>

    v-for指令

    • 1、用于展示列表數據

    • 2、語法:v-for="(item,index) in xxx" :key="yyy"

    • 3、可遍歷:數組、對象、字符串(用的很少)、指定次數(用的很少)

    key的作用

    如果用 index 做 key,循環遍歷 persons,同時在后邊增加 input,內容復制展示的信息,然后增加一個按鈕,點擊在列表前增加一個老劉

    <div id="root">
        <!--遍歷數組-->
        <h3>人員列表(遍歷數組)</h3>
        <ul>
            <li v-for="(p,index) in persons" :key="index">
                {{p.name}}--{{p.age}}
                <input type="text"/>
            </li>
        </ul>
        <button @click="add">增加一個老劉</button>
    </div>
    <script type="text/javascript">
        Vue.config.productionTip = false
        //創建vue實例
        new Vue({
            el: "#root",
            data: {
                persons:[
                    {id:1,name:"張三",age:18},
                    {id:2,name:"李四",age:19},
                    {id:3,name:"王五",age:20},
                ]
            },
            methods:{
                add(){
                    const p = {id:4,name:"老劉",age:40}
                    this.persons.unshift(p)
                }
            }
        })
    </script>

    Vue怎么實現條件渲染與列表渲染

    錯亂原因:

    Vue怎么實現條件渲染與列表渲染

    當 id 做為 key

    <ul>
            <li v-for="(p,index) in persons" :key="p.id">
                {{p.name}}--{{p.age}}
                <input type="text"/>
            </li>
        </ul>

    Vue怎么實現條件渲染與列表渲染

    Vue怎么實現條件渲染與列表渲染

    react、vue中的key有什么作用?(key的內部原理)

    1、虛擬DOM中key的作用

    key 是虛擬DOM對象的標識,當數據發生變化時,Vue會根據【新數據】生成【新的虛擬DON】,隨后Vue進行【新虛擬DOM】與【舊虛擬DOM】的差異比較,比較規則如下:

    2、對比規則

    (1).舊虛擬DOM中找到了與新虛擬DOM相同的key:

    • ①若虛擬DOM中內容沒變直,接使用之前的真實DOM

    • ②若虛擬DOM中內容變了,則生成新的真實DOM,隨后替換掉頁面中之前的真實DON

    (2).舊虛擬DOM中未找到與新虛擬DOM相同的 key:

    • 創建新的真實DOM,隨后渲染到到頁面

    3、用index作為key可能會引發的問題
    • (1).對數據進行:逆序添加、逆序刪除等破壞順序操作,會產生沒有必要的真實DOM更新(界面效果沒問題,但效率低)

    • (2).如果結構中還包含輸入類的DOM,會產生錯誤DOM更新(界面有問題)

    4、開發中如何選擇key?
    • (1).最好使用每條數據的唯一標識作為key,比如id、手機號、身份證號、學號等唯一值

    • (2).如果不存在對數據的逆序添加、逆序刪除等破壞順序操作,僅用于渲染列表用于展示,使用index作為key是沒有問題的

    讀到這里,這篇“Vue怎么實現條件渲染與列表渲染”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    vue
    AI

    兰考县| 工布江达县| 科技| 凤翔县| 屏东市| 探索| 通江县| 林州市| 左权县| 亚东县| 多伦县| 乐至县| 永济市| 湖州市| 新兴县| 澎湖县| 翼城县| 建昌县| 于都县| 青岛市| 乐业县| 安阳市| 阜阳市| 新安县| 营口市| 兴城市| 东乡族自治县| 青阳县| 清苑县| 昔阳县| 桃园县| 林芝县| 象山县| 互助| 肃南| 张家口市| 大名县| 汝阳县| 托里县| 兴宁市| 门源|