Vue基础6
创始人
2024-04-26 07:51:10

Vue基础6

  • 收集表单数据
  • 过滤器
    • 局部过滤器
    • 全局过滤器
  • 内置指令
    • v-text
    • v-html
      • 使用
      • 安全性
        • cookie工作原理
        • v-html不安全案例
    • v-cloak指令
    • v-once指令
    • v-pre指令
  • 自定义指令
    • 函数式
    • 对象式
    • 自定义命名组合式
    • 全局自定义指令
    • 自定义指令总结:

收集表单数据



Title









读书看报 唱歌





请添加图片描述
收集表单数据:

  • 若:,则v-model收集的是value值,用户输入的就是value值
  • 若:,则v-model收集的是value值,且要给标签配置value值
  • 若:
    1.没有配置input的value属性,那么收集的就是checked(勾选or未勾选,是布尔值)
    2.配置input的value属性:
    (1)v-model的初始值是非数组,那么收集的就是checked(勾选or未勾选,是布尔值)
    (2)v-model的初始值是数组,那么收集的就是value组成的数组
  • 备注:v-model的三个修饰符:
    lazy:失去焦点再收集数据
    number:输入字符串转为有效的数字
    trim:输入首尾空格过滤

过滤器

免费的提供第三方库的网站: bootCDN
使用轻量级格式化日期库:dayjs

局部过滤器



Title

显示格式化后的时间

现在是:{{fmtTime}}

现在是:{{timeFormatter()}}

现在是:{{time | tfmFormatter}}

现在是:{{time | tfmFormatter('YYYY-MM-DD HH:mm:ss')}}

现在是:{{time | tfmFormatter('YYYY-MM-DD HH:mm:ss') | mySlice}}

在这里插入图片描述
过滤器调用步骤:

在这里插入图片描述
script调用步骤:
在这里插入图片描述

全局过滤器



Title

显示格式化后的时间

现在是:{{fmtTime}}

现在是:{{timeFormatter()}}

现在是:{{time | tfmFormatter}}

现在是:{{time | tfmFormatter('YYYY-MM-DD HH:mm:ss')}}

现在是:{{time | tfmFormatter('YYYY-MM-DD HH:mm:ss') | mySlice}}

{{msg}}

{{msg | mySlice}}

真好

在这里插入图片描述
过滤器:
定义:对要显示的数据进行特定格式化后显示(适用于一些简单逻辑的处理)
语法:

  1. 注册过滤器:Vue.filter(name,callback)或 new Vue{filters:{}}
  2. 使用过滤器:{{ xxx | 过滤器名}}或 v-bind:属性=“xxx | 过滤器名”

备注:

  1. 过滤器也可以接收额外参数、多个过滤器也可以串联
  2. 并没有改变原本的数据,是产生新的对应的数据

内置指令

v-text

我们学过的指令:
v-bind:单向绑定解析表达式,可简写为 :xxx
v-model:双向数据绑定
v-for:遍历数组/对象/字符串
v-on:绑定事件监听,可简写为@
v-if:条件渲染(动态控制节点是否存在)
v-else:条件渲染(动态控制节点是否存在)
v-show:条件渲染(动态控制节点是否展示)



v-text

{{name}}

区别:
你好,{{name}}
你好,

在这里插入图片描述
v-text 指令:

  1. 作用:向其所在的节点中渲染文本内容
  2. 与插值语法的区别:v-text会替换掉节点中的内容,{{xx}}则不会

v-html

使用

可以解析 html 标签



Title

{{name}}

在这里插入图片描述

安全性

cookie工作原理

请添加图片描述
请添加图片描述
实际操作展示:

  1. 用谷歌浏览器查看cookie
    请添加图片描述

  2. 使用cookie-editor插件复制cookie
    在这里插入图片描述

  3. 再用火狐浏览器打开b站,显示的是未登录的状态
    在这里插入图片描述

  4. 使用火狐浏览器的插件cookie-editor将在谷歌浏览器中复制到的内容粘贴在这里
    请添加图片描述

  5. 刷新页面之后就可以得到一个已经登录状态的页面了
    请添加图片描述

v-html不安全案例



Title

{{name}}

请添加图片描述
通过这种方式就能获取到你的所有cookie值,然后登录你的信息做坏事

但是,如果字段被HttpOnly限定了,那么只有http协议能读取到,通过js代码就读取不到了
在这里插入图片描述
在这里插入图片描述
v-html指令:

  1. 作用:向指定节点中渲染包含html结构的内容
  2. 与插值语法的区别:
    (1)v-html会替换掉节点中所有的内容,{{xx}}则不会
    (2)v-html可以识别html结构
  3. 严重注意:v-html有安全性问题!!
    (1)在网站上动态渲染任意HTML是非常危险的,容易导致XSS攻击
    (2)一定要在可信的内容上使用v-html,永不要用在用户提交的内容上!

v-cloak指令



Title

你好,{{name}},年龄:{{age}},性别:{{sex}}

在这里插入图片描述
如果步骤2执行慢了,则会出现以下的情况:
在这里插入图片描述
解决办法:
使用v-cloak



Title


你好,{{name}},年龄:{{age}},性别:{{sex}}

步骤三没执行时候,v-cloak标签一直存在,页面内容不会显示,步骤三执行之后,v-cloak标签则会清除,页面内容正常展示
在这里插入图片描述
页面加载完毕效果:
在这里插入图片描述
v-cloak指令(没有值):

  1. 本质是一个特殊属性,Vue实例创建完毕并接管容器后,会删掉v-cloak属性
  2. 使用css配合v-cloak可以解决网速慢时页面展示出{{xxx}}的问题

v-once指令



Title

初始化的n是:{{n}}

当前的n值是:{{n}}

请添加图片描述
v-once指令:

  1. v-once所在节点在初次动态渲染后,就视为静态内容了
  2. 以后数据的改变不会引起v-once所在结构的更新,可以用于优化性能

v-pre指令



Title

Vue的展示

欢迎大家来到Vue的小课堂

当前的n值是:{{n}}

错误示范:因为下面标签中内容需要被解析

当前的n值是:{{n}}

在这里插入图片描述
v-pre指令:

  1. 跳过其所在节点的编译过程
  2. 可利用它跳过:没有使用指令语法,没有使用插值语法的节点,会加快编译

自定义指令

函数式

需求1:定义一个v-big指令,和v-text功能类似,但会把绑定的数值放大10倍



Title

姓名:{{name}}

当前的n值是:

放大10倍后的n值是:

请添加图片描述

对象式

需求2:定义一个v-fbind指令,和v-bind功能类似,但可以让其所绑定的input元素默认获取焦点



Title

{{name}}

当前的n值是:{{n}}

请添加图片描述

自定义命名组合式



example

当前的n值是:{{n}}
放大10倍后的n值是:

请添加图片描述

全局自定义指令



全局自定义指令

当前n的值是:{{n}}


放大10倍后的n值是:

第二个Vue容器的d值:{{d}}

请添加图片描述
请添加图片描述

自定义指令总结:

  1. 定义语法:
    (1)局部指令:
    new Vue({
    directives:{指令名:配置对象}
    })

    new Vue({
    directives(){指令名:回调函数}
    })
    (2)全局指令
    Vue.directive(指令名,配置对象) 或 Vue.directive(指令名,回调函数)
  2. 配置对象中常用的3个 回调:
    (1)bind:指令与元素成功绑定时使用
    (2)inserted:指令所在元素被插入页面时调用
    (3)update:指令所在模板结构被重新解析时调用
  3. 备注:
    (1)指令定义时不加v-,但使用时要加v-
    (2)指令名如果是多个单词,要使用kebab-case命名方式,不要用camelCase命名

相关内容

热门资讯

猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...