一、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 只会阻止对元素自身的点击。

vue从零开始(二)指令的更多相关文章

  1. Vue基础以及指令

    Vue 基础篇一   一.Vue框架介绍 之前大家学过HTML,CSS,JS,JQuery,Bootstrap,现在我们要学一个新的框架Vue~ Vue是一个构建数据驱动的web界面的渐进式框架. 目 ...

  2. 02: vue.js常用指令

    目录:Vue其他篇 01: vue.js安装 02: vue.js常用指令 目录: 1.1 vuejs简介 1.2 选择器:根据id.class等查找 1.3 静态绑定数据 data 1.4 插值 { ...

  3. Vue.directive 自定义指令

    一.什么是全局API? 全局API并不在构造器里,而是先声明全局变量或者直接在Vue上定义一些新功能,Vue内置了一些全局API,比如我们今天要学习的指令Vue.directive.说的简单些就是,在 ...

  4. Vue - vue.js 常用指令

    Vue - vue.js 常用指令 目录: 一. vuejs模板语法之常用指令 1. 常用指令: v-html 2. 常用指令: v-text 3. 常用指令: v-for 4. 常用指令: v-if ...

  5. Vue中插槽指令

    08.29自我总结 Vue中插槽指令 意义 就是在组件里留着差值方便后续组件内容新增 而且由于插件是写在父级中数据可以直接父级中传输而不需要传子再传父有些情况会减少写代码量 示例 <div id ...

  6. Vue基础系列(四)——Vue中的指令(上)

    写在前面的话: 文章是个人学习过程中的总结,为方便以后回头在学习. 文章中会参考官方文档和其他的一些文章,示例均为亲自编写和实践,若有写的不对的地方欢迎大家和我一起交流. VUE基础系列目录 < ...

  7. Vue基础系列(五)——Vue中的指令(中)

    写在前面的话: 文章是个人学习过程中的总结,为方便以后回头在学习. 文章中会参考官方文档和其他的一些文章,示例均为亲自编写和实践,若有写的不对的地方欢迎大家和我一起交流. VUE基础系列目录 < ...

  8. (day65、66)Vue基础、指令、实例成员、JS函数this补充、冒泡排序

    目录 一.Vue基础 (一)什么是Vue (二)为什么学习Vue (三)如何使用Vue 二.Vue指令 (一)文本指令 (二)事件指令v-on (三)属性指令v-bind (四)表单指令v-model ...

  9. Vue2.0 【第二季】第1节 Vue.directive自定义指令

    目录 Vue2.0 [第二季]第1节 Vue.directive自定义指令 一.什么是全局API? 二. Vue.directive自定义指令 三.自定义指令中传递的三个参数 四.自定义指令的生命周期 ...

  10. 最简单的方式理解Vue的自定义指令与混合

    vue.js 自定义指令 钩子函数:bindinsertedupdatecomponentUpdatedunbind 钩子函数完整实例:html: <div id="hook-argu ...

随机推荐

  1. 使用Rome读取RSS报错,org.xml.sax.SAXParseException: 前言中不允许有内容。

    这是我遇到过的最奇葩的错误 new URL的时候,使用静态变量就会报错org.xml.sax.SAXParseException: 前言中不允许有内容. URL url = new URL(Strin ...

  2. react问题You must install peer dependencies yourself.

    npm WARN react-native@0.46.4 requires a peer of react@16.0.0-alpha.12 but none is installed. You mus ...

  3. osgb文件过大,可以通过Compressor=zlib对纹理进行压缩

    osg::ref_ptr<osgDB::ReaderWriter::Options> options = new osgDB::ReaderWriter::Options; options ...

  4. getBrandWCPayRequest 和 chooseWXPay 的区别

    getBrandWCPayRequest 和 chooseWXPay 都是发起微信支付请求,chooseWXPay 依赖 http://res.wx.qq.com/open/js/jweixin-1. ...

  5. Windows 10 安装MySQL

    1.下载MySQL官网:https://www.mysql.com/ 进入官网点击DOWNLOADS ->Community->DOWNLOADS (下载社区版) 2.安装MySQL 将下 ...

  6. LODOP打印图片水平居中

    其他居中,查看本博客相关博文:LODOP中打印项水平居中简短问答.图片也属于超文本打印项,因此如果想把图片居中,也需要图片本身内容相对于图片打印项宽度居中,然后再设置打印项居中.如图,同一张图片,都设 ...

  7. 容器服务如何在企业客户落地?Rancher 解决之道分享

    Docker 的优势和趋势我想不必再赘述,那么对于非互联网公司的传统企业客户,以及我们大量的围绕企业客户做集成.交付解决方案的服务提供商,需要考虑的一个问题就是怎么样把容器技术以高质量.低成本.易维护 ...

  8. 微服务, 架构, 服务治理, 链路跟踪, 服务发现, 流量控制, Service Mesh

    微服务, 架构, 服务治理, 链路跟踪, 服务发现, 流量控制, Service Mesh 微服务架构   本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件.本文侧 ...

  9. 基于C++ STL sort函数对c++ string 进行字符串的局部排序

    Paypal笔试挂了,因为好久没有在leedcode之类的网上写代码,字符输入调了半天,时间都用光了.... Description: 有一个字符串,现在对其进行多次局部排序,例如str=" ...

  10. nginx 进程问题

    1 nginx的进程分为四种 master worker cacheLoader cacheManager. 实际接收请求的进程是 worker,master监控worker节点,之所以会多进程模式, ...