• Vue指令初探-02


    Vue复用元素模板中使用相同的元素,为了提高渲染效率。如果给每个元素设置唯一的key属性,可以告诉Vue,这两个元素完全独立,不要复用。

    举个例子:

    1. 没有设置key,发现复用input元素,输入的用户名在email中出现
    <div id="app">
            <template v-if="loginType == 'username'">
                <label >用户名:</label>
                <input key="username-input" placeholder="请输入你的用户名">
            </template>
            <template v-else>
                <label >Email:</label>
                <input placeholder="请输入你的Email">
            </template>
            <p>
                <button @click="changeLoginType">切换登入模式</button>
            </p>
        </div>
        <script src="../node_modules/vue/dist/vue.js"></script>
        <script>
            const app = new Vue({
                el: "#app",
                data: {
                    loginType: "username"
                },
                methods: {
                    changeLoginType() {
                        if (this.loginType === 'username') {
                            this.loginType = 'email'
                        } else {
                            this.loginType = 'username';
                        }
                    }
                }
            });
        </script>
    </body>
    
    1. 设置key值不要复用
    <div id="app">
         <template v-if="loginType == 'username'">
             <label >用户名:</label>
             <input placeholder="请输入你的用户名">
         </template>
         <template v-else>
             <label >Email:</label>
             <input placeholder="请输入你的Email" key="email-input">
         </template>
         <p>
             <button @click="changeLoginType">切换登入模式</button>
         </p>
     </div>
     <script src="../node_modules/vue/dist/vue.js"></script>
     <script>
         const app = new Vue({
             el: "#app",
             data: {
                 loginType: "username"
             },
             methods: {
                 changeLoginType() {
                     if (this.loginType === 'username') {
                         this.loginType = 'email'
                     } else {
                         this.loginType = 'username';
                     }
                 }
             }
         });
     </script>
    </body>
    

    属性key的值

    预期: number|string|boolean|symbol
    主要用在Vue的虚拟DOM算法中(这个目前我也不怎么了解,学到后期我会专门一个博文)

    应用

    未接触到实际的应用,正在努力学习中,以下两个是摘抄自Vue官方文档

    • 完整地触发组件的生命周期钩子
    • 触发过渡

    参考

    • vue官方文档
    • 《Vue.js深入浅出》 孙鑫

    项目地址

    https://github.com/suckitfa/vue-command
    
    慢慢来,比较快!基础要牢,根基要稳!向大佬致敬!
  • 相关阅读:
    有nativeQuery = true和没有的区别
    itext隐藏table的单元格边框
    Semaphore (参考资料,还没细看)
    STL 一级/二级空间配置器
    内联函数
    死锁
    用户态和内核态
    关于变量的可见性和生命周期
    主从库原理
    xx亿数据处理
  • 原文地址:https://www.cnblogs.com/rookie123/p/14680568.html
Copyright © 2020-2023  润新知