VUE(四)

点击下载word文档

VUE(四)

  1. 条件渲染

        <!--test1v-if v-else v-else-if指令-->

        <!--注意:    

                v-else 元素必须紧跟在带 v-if 或者 v-else-if 的元素的后面

                v-else-if 也必须紧跟在带 v-if 或者 v-else-if 的元素之后

        -->

        <div id="app">

            <h1 v-if="test==='Yes'">Yes</h1>

            <h1 v-if="test==='yes'">yes</h1>

            <h1 v-else>No</h1>

            <!--template可以看成是一个看不见的包裹元素用来进行块判断-->

            <template v-if="ok">

                <h1>Title</h1>

                <p>Paragraph 1</p>

                <p>Paragraph 2</p>

            </template>

 

        </div>

        <script>

            var vm = new Vue({

                el: '#app',

                data: {

                    test: 'yes',

                    ok: true

                }

            })

        </script>

  1. 用key管理可复用的元素

    1. 复用

复用其实就是两个同样的模板在切换的时候,如果仅仅是内容不同时,只替换内容 不会去重新加载组件。

        <!--test2.1 可以试试看在切换的时候这里只是替换了placeholder 其他的都没有变

            例如你在输入框中输入了文本后点击按钮切换后并没有消失也就是说组件并没有被重新加载-->

        <div id="no-key-example" class="demo">

            <div>

                <template v-if="loginType === 'username'">

                    <label>Username</label>

                    <input placeholder="Enter your username">

                </template>

                <template v-else="">

                    <label>Email</label>

                    <input placeholder="Enter your email address">

                </template>

            </div>

            <button @click="toggleLoginType">Toggle login type</button>

        </div>

        <script>

            new Vue({

                el: '#no-key-example',

                data: {

                    loginType: 'username'

                },

                methods: {

                    toggleLoginType: function() {

                        return this.loginType = this.loginType === 'username' ? 'email' : 'username'

                    }

                }

            })

        </script>

  1. 不复用

        <!--test2.2:当我们不需要复用一个组件的时候那么我们可以在不需要复用的组件上加一个唯一标识的key属性这样这个组件就会重新被加载不会在复用-->

        <div id="no-key-example1" class="demo">

            <div>

                <template v-if="loginType === 'username'">

                    <label>Username</label>

                    <input placeholder="Enter your username" key="username-input">

                </template>

                <template v-else="">

                    <label>Email</label>

                    <input placeholder="Enter your email address" key="email-input">

                </template>

            </div>

            <button @click="toggleLoginType">Toggle login type</button>

        </div>

        <script>

            new Vue({

                el: '#no-key-example1',

                data: {

                    loginType: 'username'

                },

                methods: {

                    toggleLoginType: function() {

                        return this.loginType = this.loginType === 'username' ? 'email' : 'username'

                    }

                }

            })

        </script>

  1. v-show指令

        <!--test3v-show指令v-if的用法大致一样

            不同的是带有 v-show 的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS 属性 display-->

        <!--注意:v-show 不支持 <template> 元素,也不支持 v-else-->

        <div id="app-3">

            <h1 v-show="ok">Hello!</h1>

        </div>

        <script>

            var vm = new Vue({

                el: '#app-3',

                data: {

                    test: 'yes',

                    ok: true

                }

            })

        </script>

         

        

        <!--test4:v-if v-show的对比-->

        <!--

            v-if "真正"的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。

            v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。

            相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。

            一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;

            如果在运行时条件很少改变,则使用 v-if 较好。

        -->

         

        

        <!--test5v-if v-for 一起使用,v-for 具有比 v-if 更高的优先级。-->

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值