vue 的指令与过滤器

目录

1. 指令的概念

1.1 内容渲染指令

1.1.1v-text

1.1.2{{ }} 语法

1.1.3 v-html

1.2 属性绑定指令

属性绑定指令的简写形式

使用 Javascript 表达式

1.3 事件绑定指令

事件绑定的简写形式

事件参数对象

绑定事件并传参

$event

事件修饰符

按键修饰符

1.4 双向绑定指令

v-model 指令的修饰符

1.5 条件渲染指令

v-if 和 v-show 的区别

v-else

v-else-if

1.6 列表渲染指令

v-for 中的索引

使用 key 维护列表的状态

key 的注意事项

2. 过滤器(Vue3中已删除这个语法,只能在Vue2项目中使用)

过滤器的基本使用:

2.1 定义过滤器 

2.2 私有过滤器和全局过滤器

2.3 连续调用多个过滤器

2.4 过滤器传参

2.5 过滤器的兼容性

3.  品牌列表案例

3.1. 案例效果​编辑

3.2. 整体实现步骤

3.3. 整体代码:

HTML部分:

引用部分lib: 

 CSS部分:

总结:


 

1. 指令的概念

指令(Directives) vue 为开发者提供的模板语开发页面基本

vue 中的指令按照不同的用分为 6 大类:

①  内容渲指令

②  属性绑定指令

③  事件绑定指令

④  双向绑定指令

⑤  条件渲染指令

⑥  列表渲指令

注意:指令vue 开发中最基础、最常、最单的

1.1 内容渲染指令

内容渲染指令用来辅开发渲染 DOM 元素的文本内容用的容渲有如下 3 个:

1、v-text
2、{{ }}
3、v-html

1.1.1v-text

用法示例:

vue 的指令与过滤器_第1张图片

 注意:v-text 指令会覆盖元素内认的

1.1.2{{ }} 语法

vue 提供的 {{ }} 语法,专门用来解v-text 会覆盖本内的问 {{ }} 语法的专业名称是达 式(英文名为Mustache)。vue 的指令与过滤器_第2张图片

注意:相对v-text 指令来说插值表达发中常用因为不会素中认的容。

1.1.3 v-html

v-text 指令和插值表达式纯文 HTML 标签的字符串渲染为HTML 元素,  则需要用v-html 这个指令:vue 的指令与过滤器_第3张图片

最终渲染的结果为:

vue 的指令与过滤器_第4张图片

1.2 属性绑定指令

如果需要为元素的属动态则需v-bind 属性绑定指令。用法例如下:vue 的指令与过滤器_第5张图片

属性绑定指令的简写形式

v-bind 指令在开发中使用频高,,vue 官方为其提供了简写 : )。vue 的指令与过滤器_第6张图片

使用 Javascript 表达式

vue 提供的模板渲染语法,除绑定单的之外支持 Javascript 表达式的运算,例如:vue 的指令与过滤器_第7张图片

1.3 事件绑定指令

vue 提供v-on 事件绑定指令,用辅助序员为 DOM 元素绑定事件监听语法式如下:vue 的指令与过滤器_第8张图片

注意:原生 DOM 对象onclickoninputonkeyup 等原生替换vue 的事件绑定形式后,

分别为v-on:clickv-on:inputv-on:keyup

v-on 绑定的事件处理函数methods 节点中进行声明:vue 的指令与过滤器_第9张图片

事件绑定的简写形式

v-on 指令在开发中使用频高,,vue 官方为其提供了简写 @ )。vue 的指令与过滤器_第10张图片

事件参数对象

在原生的 DOM 事件绑定中,可以在理函的形接收件参对象 event理,v-on 指令

(简写@ )所绑定的事件处理数中同样收到件参event例代码如下:vue 的指令与过滤器_第11张图片

绑定事件并传参

在使v-on 指令绑定事件时,使 ( ) 进行传参,示例代码如下:vue 的指令与过滤器_第12张图片

$event

$event vue 提供的特殊变,用来生的件参event$event 可以解决事件参数对event

被覆盖的问题。示例法如下:vue 的指令与过滤器_第13张图片

事件修饰符

在事件处理函数中调event.preventDefault() event.stopPropagation() 是非常常见的需求。因

vue 提供了事件修饰符的概辅助序员便件的行控。常 5 个事件修饰符如下:

事件修饰符

说明

.prevent

阻止默认行(例如:阻 a 连接的跳转、阻止表单的提交等)

.stop

阻止事件冒泡

.capture

以捕获模式触发当前的事件处理函数

.once

绑定的事件只触发1

.self

只有 event.target 是当前元素自身时触发事件处理函数

 语法格式如下:vue 的指令与过滤器_第14张图片

按键修饰符

在监听键盘事件时,们经判断细的此时可以相关键修,例如:vue 的指令与过滤器_第15张图片

1.4 双向绑定指令

vue 提供v-model 双向数据绑操作 DOM 的前提下,快速获取单的vue 的指令与过滤器_第16张图片

v-model 指令的修饰符

为了方便对用户输入内容,vue v-model 指令提供了 3 个修饰符,分别是:

修饰符

作用

示例

.number

自动将用户的输入值转为数值类型

v-model.number="age" />

.trim

自动过滤用户输入的首尾空白字符

v-model.trim="msg" />

.lazy

“change”时而非“input”时更新

v-model.lazy="msg" />

 示例用法如下:vue 的指令与过滤器_第17张图片

1.5 条件渲染指令

条件渲染指令用来辅开发控制 DOM 的显示与隐藏。条件染指下两,分是:

v-if
v-show

示例用法如下:vue 的指令与过滤器_第18张图片

v-if v-show 的区别

实现原理不同:

v-if 指令会 动态地创建或移除 DOM 元素 ,从而控制元 在页 显示 隐藏;
v-show 指令会动态为元素 移除 style="display: none;" 样式 ,从而控制元 的显 与隐

性能消耗不同:

v-if 有更高的切换开销v-show 有更高的初始渲染开销

如果需要 非常频繁地 使 v-show 较好
如果在 使 v-if 较好

v-else

v-if 可以单独使用,或配v-else 指令一起使用:vue 的指令与过滤器_第19张图片

注意:v-else 指令必须配v-if 指令一起使用,否不会识别!

v-else-if

v-else-if 指令,顾名思义,v-if “else-if 块”,可以连续使用:vue 的指令与过滤器_第20张图片

注意:v-else-if 指令必须配v-if 指令一起使用,否则会被别! 

1.6 列表渲染指令

vue 提供v-for 列表渲染指令,用辅助基于个数环渲一个v-for 指令需要使 用 item in items 形式的特殊语法,其

items 待循环的数组
item 被循环的每一项 vue 的指令与过滤器_第21张图片

v-for 中的索引

v-for 指令还支持一个可选参数语法(item, index) in items示例代码如下:vue 的指令与过滤器_第22张图片

注意:v-for 指令中的 item index 索引都是形参,可根据要进(user, i) in userlist

使用 key 维护列表的状态

列表的数据变化默认,vue 尽可能的复用已存在的 DOM 元素,从而提升渲这种 默认的性能优化策略会导态的表无确更

为了vue 一个提示,以便它能跟节点身份有状表被确更提下提升渲 染的性能key 属性vue 的指令与过滤器_第23张图片

key 的注意事项

①  key 的值只能字符串类型

②  key 的值必须具有唯一性:key 的值不能重复)

③  建议把数据项 id 属性的值key 的值(因为 id 属性的值具有唯一性)

④  使 index 的值 key 的值没有任何意(因为 index 的值不具有唯一性)

⑤  建议使v-for 指令时一定要指key 的值(既提升性能、防止表状

2. 过滤器(Vue3中已删除这个语法,只能在Vue2项目中使用)

过滤器Filters vue 为开发者提供的功能,文本格式滤器以用地方插值达式 v-bind 属性绑定

过滤器应该被添加在 JavaScript 表达式的尾部,由“道符调用示例码如下:vue 的指令与过滤器_第24张图片

过滤器的基本使用:


  

message 的值是:{{ message | capi }}

过滤器的注意点

1. 要定义到 filters 节点下,本质是一个函数
2. 在过滤器函数中,一定要有 return 值
3. 在过滤器的形参(val)中,可以获取到“管道符”前面待处理的那个值
4. 如果全局过滤器和私有过滤器名字一致,此时按照“就近原则”,调用的是”私有过滤器“

2.1 定义过滤器 

在创vue 实例期间,可以filters 节点中定义过滤器,示代码如下:vue 的指令与过滤器_第25张图片

2.2 私有过滤全局过滤器

filters 节点下定义的过滤,称有过”,vm 实例所控制el 区域内使用。 如果希望在多vue 实例之间共享过滤,则以按的格:(全局过滤器要放在Vue实例化代码前面,不然会报错)vue 的指令与过滤器_第26张图片

2.3 连续调用多个过滤器

过滤器可以串联地调用例如:vue 的指令与过滤器_第27张图片

示例代码如下:vue 的指令与过滤器_第28张图片 

2.4 过滤器传参

过滤器的本质 JavaScript 函数,因此可以接参数格式如下:vue 的指令与过滤器_第29张图片

示例代码如下:vue 的指令与过滤器_第30张图片 

2.5 过滤器的兼容性

过滤器仅vue 2.x 1.x 中受支持,vue 3.x 的版本中剔除了过的功。 在企业级项目开发中:

如果使用的 2.x 版本 vue, 则依然可以使 过滤 相关 功能
如果项目已经升级到了 3.x 版本 vue, 官方建议使 计算 方法 替被 过滤 功能

具体的迁移指南,请vue 3.x 的官方文档给出的明:

https://v3.vuejs.org/guide/migration/filters.html#migration-strategy

https://v3.vuejs.org/guide/migration/filters.html#migration-strategyhttps://v3.vuejs.org/guide/migration/filters.html#migration-strategy

3.  品牌列表案例

3.1. 案例效果vue 的指令与过滤器_第31张图片

3.2. 整体实现步骤

①  创建基本vue 实例

②  基于 vue 渲染表格数据

③  实现添加品的功能

④  实现删除品的功能

⑤  实现修改品牌状

3.3. 整体代码:

HTML部分:





  
  
  
  品牌列表案例
  
  




  
添加品牌
品牌名称
# 品牌名称 状态 创建时间 操作
{{ item.id }} {{ item.name }}
{{ item.time }} 删除

引用部分lib: 

vue 的指令与过滤器_第32张图片

 CSS部分:

body {
  padding: 15px;
  user-select: none;
}

总结:

vue 的指令与过滤器_第33张图片

你可能感兴趣的:(Vue,前端,前端框架,Vue,Vue指令,Vue过滤器)