Vue 模板语法 插值操作 绑定属性 计算属性 事件监听 条件判断 循环遍历 阶段案例


1 插值操作

1.1 Mustache语法

也就是双大括号 {{ }}

{{ message }} : {{ info }}

{{ message + " : " + info }}

{{ counter * 2 }}

1.2 v-once

  • 该指令后面不需要跟任何表达式(比如之前的v-for后面是跟表达式的)

  • 该指令表示元素和组件(组件后面才会学习)只会渲染一次,不会随着数据的改变而改变

{{ message }}

{{ message }}

1.3 v-html

某些情况下,我们从服务器请求到的数据本身就是一个HTML代码

  • 如果我们直接通过{{ }} 来输出,会将HTML代码也一起输出

  • 但是我们可能希望的是按照HTML格式进行解析,并显示对应的内容

如果我们希望解析出HTML展示

  • 可以使用v-html指令

  • 该指令直面往往会跟上一个string类型

  • 会将string的html解析出来并进行渲染

{{ url }}

https://static.920vip.net/c2fd572b92245098295c46e1afe388de.png

1.3 v-text

不推荐,灵活度不够

1.4 v-pre

v-pre用于跳过这个元素和它子元素的编译过程,用于显示原本的Mustche语法

比如下面代码

  • 第一个h2元素中的内容会被编译解析出来对应的内容

  • 第二个h2元素中会直接显示{{message}}

{{ message }}

{{ message }}

https://static.920vip.net/35c8e45ed7d774541925f8d47a9045aa.png

1.5 v-cloak

在某些情况下,我们浏览器可能会直接显示出未变异的Mustche标签

{{ message }}

  • 在vue解析之前,div中有一个属性v-cloak

  • 在vue解析之后,div中没有一个属性v-cloak

2 绑定属性

2.1 v-bind

场景:某些属性需要动态绑定

  • 比如动态绑定a元素的href属性

  • 比如动态绑定img元素的src属性

v-bind指令:

  • 作用:动态绑定属性

  • 缩写::语法糖写法 直接冒号

  • 预期:any(with argument)|Object(without argument)

  • 参数:attrOrProp(optional)





2.2 v-bind绑定class

2.2.1 绑定方式:对象语法

  • 对象语法的含义:class后面跟的是一个对象

Hello World

Hello World

Hello World

Hello World

2.2.2 绑定方式:数组语法

{{ message }}

{{ message }}

2.3 点击列表中哪一项,那么该项的文字变为红色


  • {{ index }}{{ ' - ' + m }}

2.4 v-bind绑定style

  • 可以使用v-bind:style来绑定一些CSS内敛样式

  • 在写CSS属性名的时候,比如font-size

  1. 我们可以使用驼峰式(cameCase)fontSize

  2. 或短横线分隔(kebab-case,记得用单引号括起来)'font-size'

  • 绑定class有两种方式
  1. 对象语法

{{ message }}

{{ message }}

{{ message }}

  1. 数组语法

{{ message }}

3 计算属性

  1. 某些情况下,我们可能需要对数据进行一些转换后再显示,或者需要将多个数据结合起来进行显示
  • 比如:有firstName和lastName两个变量,我们需要显示完整的名称。

  • 但是如果多个地方都需要完整的名称,就需要写多个{{ firstName }} {{ laseName }}

  1. 我们可以将上面的代码转换成计算属性

3.1 基本操作

{{ name + ' : ' + nameValue }}

{{ name }} : {{ nameValue }}

{{ getFullName() }}

{{ fullName }}

3.2 复杂操作

总价格: {{ totalProce }}

3.3 计算属性的setter和getter

{{ fullName }}

3.4 计算属性和methods的对比

{{ name }} {{ nameValue }}

{{ getFullName() }}

{{ fullName }}

3.5 计算属性的缓存

计算属性会进行缓存,如果多次使用时,计算属性只会调用一次

4 事件监听

4.1 v-on基本使用

  • 作用:绑定时间监听器

  • 缩写:@

  • 预期:Function | Inline Statement | Object

  • 参数:event

{{ counter }}

4.2 v-on参数



4.3 v-on修饰符

Vue提供了修饰符来帮助我们方柏霓处理一些事件

  • .stop:调用event.stopPropagation()

  • prevent:调用event.preventDefault()

  • .{keyCode | keyAlias}:只当事件是从特定键触发时才触发回调

  • .native:监听组件根元素的原生事件

  • .once:只触发一次回调

6666666

5 条件判断

5.1 v-if

666

5.2 v-if v-else

666
isShow为false时, 显示我

5.3 v-if v-else-if v-else

优秀

良好

及格

不及格

{{ result }}

5.4 用户登录切换的案例(小问题)

5.5 v-show

v-if和v-show对比

  • v-if当条件为false时,压根不会有对应的元素在DOM中。

  • v-show当条件为false时,仅仅是将元素的display属性设置为none而已

开发中国如何选择

  • 当需要在显示与隐藏之间切片很频繁时,使用v-show

  • 当只有一次切换时,通常使用v-if

{{ message }}

{{ message }}

6 循环遍历

6.1 v-for遍历数组

语法格式案例:

# 不需要索引
v-for="movie in movies"

# 需要索引
v-for=(item,index) in items
  • {{ item }}
  • {{ index + 1 }} - {{ item }}

6.2 v-for遍历对象

  • {{ item }}
  • {{ key }} : {{ value }}
  • {{ index + 1 }}-{{ key }} : {{ value }}

6.3 使用过程添加key


  • {{ item }}

6.4 数组方法

  • {{ item }}

7 阶段案例

购物车案例:

https://gitee.com/net920vip/vue-framework/tree/master/LearnVuejs01

https://github.com/net920vip/vue-framework/tree/master/LearnVuejs01

8 v-model

  • Vue中使用v-model指令来实现单元数和数据的双向绑定

等同于


8.1 v-model结合checkbox类型

您的爱好是:{{ hobbies }}

8.2 v-model结合select类型

您的选择是:{{ hobby }}

您的选择是:{{ hobbies }}

8.3 v-model修饰符

{{ message }}

{{ age }}---{{ typeof age }}

您输入的名字:{{ name }}

转载于:
https://www.920vip.net/article/154