Vue模板语法

94 阅读3分钟

react的受控组件就是双向绑定。 默认的安装只安装了vue最核心的库,路由之类的都没有安装。

模板语法

Vue的语法和react的jsx语法很像,但是它俩不是很一样。 模板语法里也允许用表达式,但vue里用{{}}

  1. vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层vue 实例的数据。
  2. vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统
  3. 结合响应系统,在应用状态改变时,vue 能够智能地计算出重新渲染组件的最小代价并应用到DOM 操作上。

vue组件到底要不要更新渲染,vue自己会判断。(相当于代替了react里的shouldConmponentUpdate)

主要内容:

插值:

插值就是在VDOM之间插入内容

  • 文本:主要指的就是插入状态
  • 纯html 如果data状态值是标签,并且想把这个状态值作为标签渲染到虚拟DOM中,需要使用v-html="data里的键名",把该指令作为虚拟DOM标签的属性传进去。
  • 属性
  • 使用js表达式:如果想给属性值设置成动态的,用指令v-bind:class="data里的值",可以简写成:class="data里的值"。

指令:

指令是带有v-前缀的特殊属性,指令属性的值预期是单一js表达式(除了v-for)。指令的职责就是当其表达式的值改变时相应的将某些行为应用到DOM上

  1. v-bind:class=""
  • 解释:一些指令能够接收一个“参数”,在指令名称之后冒号标识。例如:v-bind指令可以用于响应式地更新HTML特性。
  • 例如:<a v-bind:href="url">...</a>
  • 简写:<a :href="url">...</a>
  • 代码解释:在这里href是参数,告知v-bind指令将该元素的href特性与表达式url值绑定。
  1. v-html="" 把字符串渲染成虚拟DOM
  2. v-if="" 它是用来做条件渲染的,当v-if的值为true时,插入该标记,否则不插入,v-if的值可以是状态,当做某件事时,改变该状态。
  3. v-on绑定事件。它用于监听DOM事件。 例子:<a v-on:click="事件处理函数名">跳转</a>简写成@click="事件处理函数"。在这里参数是监听的事件名 指令大多数封装的都是操作节点的。 1. 参数: 指令大多都是封装的函数,所以可以传参,指令:后面的值是参数,或者指令=后面的值是参数

2.修饰符

  • 修饰符(Modifiers)是以半角句号•指明的特殊后缀,用于指出一个指令应该以特殊方式绑定。例如,prevent 修饰符告诉 v-on 指令对于触发的事件调用 event.preventDefaultQ阻止默认事件,之后当我们更深入地了解v-on 与v-model时,会看到更多修饰符的使用。
  • 例如: <form v-on:submit. prevent="onSubmit"></form>

filters:

  1. 过滤器 Vue.js允许你自定义过滤器,被用作一些常见的文本格式化,Vue2.x中,过滤器只能在mustache绑定和v-bind表达式(从2.1.0开始支持)中使用,因为过滤器设计目的就是用于文本转换,为了其他指令中实现更复杂的数据变换,你应该使用计算属性。

定义过滤器,主要用来做数据格式化,过滤器只能在模板里调用,其他地方调用不了。一个值想给他转换格式输出,就可以使用过滤器,如果想再做一些别的事情,就不能用过滤器。

vue里该状态直接改,不需要调用任何方法

1.png

2.png

3.png

代码解释:最后一个div里的messages是状态名,arrToString是过滤器名,arrToString函数里参数value,就是messages

目前感受:感觉vue写起来要比react简单,可是逻辑性更强,刚开始学习vue,慢慢来吧,只能写一些简简单单的例子,学的也不是很透彻,迷迷瞪瞪