vue中常用的一些指令

277 阅读3分钟

一. vue中的指令

{{ }}可以用来把数据显示在视图上,但它的功能还是相当有限的。例如,如果是一个列表数据(数组)希望使用循环来显示,它就做不到了。所以我们需要继续学习vue的指令系统。

1.指令

vue提供了指令(directive)功能,这些指令都是以v-开头(例如:v-for ),它们从形式上来看是标签的自定义属性(只不过是由vue提供的)

示例

作用

指令必须用在某个标签(或者是组件)上, 用来扩展标签的原有功能

学习vue,一个主要的学习内容就是各种指令的用法

指令列表:

    v-bind

    v-on
    
    v-model
    
    v-for
    
    v-text
    
    v-html
    
    v-if
    
    v-show
    
    v-if,v-else-if, v-else
    

小结

  • vue提供指令系统来增强标签的能力,
  • 指令都是以 v- 开头的, 每个指令都有自己独特的作用
  • 指令的学习基本上没有先后顺序关系的,先学哪一个,后学哪一个都可以。
  • 指令要与具体的标签结合一起使用
  • 一个标签上也可以使用多个指令

2.vue指令v-bind

问题导入
 如何动态设置imgsrc的内容
<img src="{{图片的地址}}">

作用
v-bind用来动态绑定标签上的属性的值。(标签上的属性值不能使用插值表达式来设置)。

image.png

code2png.png

image.png

3.vue指令-v-for

语法:
<li v-for="(item, idx) in arr" :key="idx">{{ item }}</li>
  • 索引可以省略
  • 目标结构可以是:数组 / 对象 / 数字

代码:

code2png.png

效果:

image.png

点击一次变换位置: image.png

4.vue指令v-text和v-html

语法:
    • v-text="vue数据变量"

    • v-html="vue数据变量"

code2png.png

image.png

小结

v-text把值当成普通字符串显示, v-text ===> innerText

v-html把值当做html解析,v-html ===> innerHTML

5.vue指令v-show和v-if

作用
控制标签的可见与不可见
语法
-   <标签 v-show="vue变量" />
-   <标签 v-if="vue变量" />

如果vue变量的值为true,就可见,否则就不可见。

原理:

-   v-show 用的display:none隐藏   (频繁切换使用)
-   v-if  直接从DOM树上添加或移除

code2png.png

v-if显示 v-show隐藏 image.png

v-if显示 v-show显示 image.png

6.vue指令v-if,v-else-if,else

格式:与js中的if选择结构是一致的。
<标签 v-if="条件">        </标签> 
<标签 v-else-if="条件">   </标签> 
<标签 v-else-if="条件">   </标签> 
<标签 v-else>             </标签>

用v-if与v-else-if条件 code2png.png

image.png

5.v-on和methods

作用
给标签绑定事件
语法:
  1.  <标签 v-on:事件名="要执行的*少量代码*" >
  2.  <标签 v-on:事件名="methods中的函数" >
  3.  <标签 v-on:事件名="methods中的函数(实参)">
  

code2png.png

页面展示效果:

image.png

6.vue基础-MVVM设计模式

目的

了解MVVM的设计模式,理解数据驱动视图 的含义 vue框架采用了mvvm的设计思想;

数据驱动视图演示

image.png

MVVM详解

模式说明:MVVM = Model + View + ViewModel

1. MVVM,一种软件架构模式,决定了写代码的思想和层次

● M:  model数据模型 (data里定义)

● V:  view视图 (template里定义html页面结构)

● VM: ViewModel视图模型 (vue组件实例this)

2. MVVM通过数据双向绑定让数据自动地双向同步 不再需要操作DOM

● V(修改视图) -> M(数据自动同步)

● M(修改数据) -> V(视图自动同步)