zoukankan      html  css  js  c++  java
  • vue从零开始(二)指令

    一、v-text和v-html

           <span v-text="msg"></span>

      <div v-html="html"></div>

      注意事项:

         1、v-text和v-html的区别类似于innertext和innerhtml的区别,v-text只能渲染文本形式,v-html则能识别标签并进行渲染,

         2、在网站上动态渲染任意 HTML 是非常危险的,因为容易导致 XSS 攻击。只在可信内容上使用 v-html,千万不用在用户提交的内容上

         3、在单文件组件里,scoped 的样式不会应用在 v-html 内部,可以使用全局的style或者使用vue-loader中的css modules(在webpack.config.js文件中的css-loader中添加  modules:true)

    二、v-show和v-if

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

       <h1 v-if="awesome">Vue is awesome!</h1>

          注意事项:

       1、 因为 v-if 是一个指令,所以必须将它添加到一个元素上。但是如果想切换多个元素呢?此时可以把一个 <template> 元素当做不可见的包裹元素,并在上面使用 v-if。最终的渲染结果将不包含 <template> 元素。

        <template v-if="ok">

        <h1>Title</h1>

        <p>Paragraph 1</p>

        <p>Paragraph 2</p>

        </template>

       2、 可以使用v-else来配合v-if,类似于js中的if else

       3、 v-show 只是简单地切换元素的 CSS 属性 display        

       4、 v-if是惰性的,只有第一次为真的时候才渲染,v-show不管条件怎么样都会渲染

       5、 v-if中的事件监听器和子组件都会进行适当的销毁和重建,而v-show只是简单的切换元素的显示隐藏

       6、 v-if的特性决定在切换的时候开销比较大,所以在切换频繁的时候使用v-show,不频繁的时候使用v-if

       7、 当 v-if 与 v-for 一起使用时,v-for 具有比 v-if 更高的优先级

    三、v-for和key

           <div v-for="(item, index) in items"></div>

      <div v-for="(val, key) in object"></div>

      <div v-for="(val, name, index) in object"></div>

      <div v-for="item in items" v-bind:key="item.id">

          <!-- 内容 -->

      </div>

      注意事项:

        1、 vue的“旧地复用”:元素中的数据变化的时候元素位置不会发生变化,只是更新元素中的数据,这样的模式是高效的

        2、 但是旧地复用的劣势是会打乱元素之间的依赖关系,所以除非刻意依赖默认行为都建议使用key来放置旧地复用

        3、 Key值必须是独特的标识,不能出现重复的key值

    四、v-on监听事件

              1、<button v-on:click="counter += 1">Add 1</button>在事件中可以使用表达式

         2、<button v-on:click="greet">Greet</button>事件处理逻辑复杂的时候可以使用需要调用的方法的名称

         3、<button v-on:click="say('what')">Say what</button>可以在内联 JavaScript 语句中调用方法,传入实参

         4、事件修饰符:<!-- 阻止单击事件继续传播 -->

        <a v-on:click.stop="doThis"></a>

     

        <!-- 提交事件不再重载页面 -->

        <form v-on:submit.prevent="onSubmit"></form>

     

        <!-- 修饰符可以串联 -->

        <a v-on:click.stop.prevent="doThat"></a>

     

        <!-- 只有修饰符 -->

        <form v-on:submit.prevent></form>

     

        <!-- 添加事件监听器时使用事件捕获模式 -->

        <!-- 即元素自身触发的事件先在此处理,然后才交由内部元素进行处理 -->

        <div v-on:click.capture="doThis">...</div>

     

        <!-- 只当在 event.target 是当前元素自身时触发处理函数 -->

        <!-- 即事件不是从内部元素触发的 -->

        <div v-on:click.self="doThat">...</div>

        <!-- 点击事件将只会触发一次 -->

        <a v-on:click.once="doThis"></a>

        <!-- 只有在 `key` 是 `Enter` 时调用 `vm.submit()` -->

        <input v-on:keyup.enter="submit">

      使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生。因此,用 v-on:click.prevent.self 会阻止所有的点击,而 v-on:click.self.prevent 只会阻止对元素自身的点击。

  • 相关阅读:
    JVM内存管理概述与android内存泄露分析
    android中activity.this跟getApplicationContext的区别
    Android广播机制概述
    android中shape属性大全
    android studio视频教学
    四十六、android中的Bitmap
    访问限制:由于对必需的库 C:/Program Files/Java/jre6/lib/rt.jar 具有一定限制,因此无法访问类型。。
    优质博客内容链接
    java日期格式大全 format SimpleDateFormat
    java中equals与==的区别
  • 原文地址:https://www.cnblogs.com/wyongz/p/11118928.html
Copyright © 2011-2022 走看看