热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Vue学习总结笔记(四)

文章目录1.使用Vue写一个表单数据2.Vue过滤器2.1moment.js和day.js的库2.2Vue的过滤器的使用3.v-text指令4.v-html指令(谨慎使用

文章目录


  • 1. 使用Vue 写一个表单数据
  • 2. Vue 过滤器
    • 2.1 moment.js 和 day.js 的库
    • 2.2 Vue的 过滤器的使用
  • 3. v-text 指令
  • 4. v-html 指令 (谨慎使用!!!)
    • 4.1 COOKIE 工作原理
    • 4.2 v-html 指令
  • 5. v-clock 指令
  • 6. v-once 指令
  • 7. v-pre 指令
  • 8. Vue的 自定义指令
    • 8.1 设置自定义指令的 两种方式
    • 8.2 自定义指令的 element参数 和 binding参数
    • 8.3 自定义指令 对象式
    • 8.4 全局自定义指令
  • 9. Vue的 生命周期
    • 9.1 Vue的生命周期 介绍
    • 9.2 Vue生命周期的 整体流程
    • 9.3 模板编译的流程
    • 9.4 Vue中的template 和 template标签
    • 9.5 Vue的生命周期 更新流程
    • 9.6 Vue的生命周期 销毁流程
    • 9.7 Vue 整个生命周期的使用
    • 9.8 在beforeDestroy函数方法中,消除计时器等操作

1. 使用Vue 写一个表单数据



在这提一句,在定义的checkbox中有一个属性为:checked,勾选了为true,没有勾选为false。
在这里插入图片描述



需要记住的几点:


1.@submit表单form一旦提交就会触发demo中的内容 ,提交后页面内容会自动跳转消失,这里我们可以用prevent来解决
2.label的for可以与input的id进行关联,点击账号就可以切换到input光标上面。
3.trim可以去除多余的空格,但是字符串中间的空格是无法去除的。
4.这里我们可以直接将input的type定义为number,达到输入数字的效果。在Vue提供给的v-model.number,在data中直接写成数字形式。
5.input设置为radio和name来设置单选和关联内容,注意v-model绑定的是value值,这里设置的是radio没有输入框,因此定义value值来传给data
6.这里如果我们不定义value属性,这里默认是得到的checked值,此外data中的hobby值必须是数组,不能定义字符串!!
7.我们在这定义v-model.lazy可以一口气输入完成内容,失去光标后,直接提交给data,而不是时时刻刻提交
8.这里的checkbox与上面不同,直接接受checked的值true或者false就可以了


上面内容配合下面源码定义:







年龄:
性别:男
爱好:学习打篮球打台球
所属校区
其他信息:
阅读并接受《用户协议》



在这里插入图片描述


2. Vue 过滤器


2.1 moment.js 和 day.js 的库



了解,一个专门处理日期的库,叫做moment.js。这个库对日期的操作很全面,但是体积很大。
在这里插入图片描述

还有一个轻量级的库叫做day.js。
在这里插入图片描述
day.js的使用:


显示格式化后的事件

time时间戳转换后的是:{{fmtTime}}

当前时间为:{{nowTime}}




2.2 Vue的 过滤器的使用



" | " ,这个符号叫做管道符。



过滤器的实现过程:
在这里插入图片描述

配置单个对象内部过滤器,也就是局部过滤器:


现在是:{{time | timeFormater}}

现在是:{{time | timeFormater('YYYY年MM月DD日')}}

现在是:{{time | timeFormater('YYYY年MM月DD日') | mySlice}}



还有一个全局过滤器,全局过滤器呢,就是所有的Vue实例对象或组件都可以使用。


现在是:{{time | timeFormater}}

现在是:{{time | timeFormater('YYYY年MM月DD日')}}

{{msg}}



注意:有一个误区,并不是过滤器只能用到插值语法中,Vue指令属性有的也可以使用,例如: v-bind;当然也有一些不能使用过滤器,例如:v-model。使用的状况也是一样。只不过很少在指令属性中使用而已。



总结:
在这里插入图片描述


3. v-text 指令




  • v-text属性会替换掉原先的文本内容,并且不会解析标签完完全全当成文本解析。

    {{name}}
    本来的内容



4. v-html 指令 (谨慎使用!!!)


4.1 COOKIE 工作原理



关于COOKIE,在登录时,服务器会向浏览器发送COOKIEs,作为判断标识。

在这里插入图片描述
在这里插入图片描述
我们可以使用COOKIE.Editor插件来将COOKIE导入或者导出。此插件需要去谷歌商店去下载。

我们在浏览器控制台使用:document.COOKIE,来查看网页目前的COOKIE。
在这里插入图片描述


4.2 v-html 指令



Javascript:表示后面添加js代码。

我通过添加ducument.COOKIE,转给别的网站这样别人的网站就拿到了你的COOKIE,就可以用你的COOKIE进行一个登录等操作了!


本来的内容
本来的内容


通过上面的效果,可以知道v-html是不能随便定义的,因为它是在网站上进行动态渲染的!这样如果我们使用上面演示的效果,就导致了COOKIE的泄露。

这种效果,就叫做XSS攻击,XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。


5. v-clock 指令



v-clock指令配合CSS可以解决js阻塞问题。

v-cloak属性,一旦被Vue实例对象接管,该属性会被自动删除。

通过这些机制,我们就可以通过属性选择器,来解决js发生阻塞停止了几秒,这时页面也不会显示出未完成的代码块。

总体上,当你的网速过慢时,v-clock指令不会让还没有解析的代码,跑到页面上去。

源码:


{{name}}



在这里插入图片描述


6. v-once 指令



在这里插入图片描述


初始化值:{{n}}

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




7. v-pre 指令



v-pre指令是一个提高Vue编译速度的指令,有一些代码压根就没有应用到Vue中,我们就可以给他设置v-pre指令,Vue解析时直接跳过,节约时间。

在这里插入图片描述


这里写了一大堆,没有用到vue的内容,使用v-pre跳过vue的编译。

初始化值:{{n}}

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

这里又写了一堆,没有用到vue的内容,使用v-pre跳过vue的编译。




8. Vue的 自定义指令


8.1 设置自定义指令的 两种方式



Vue的自定义指令实际上就是我们通过自己设置dom元素来创建我们自己的Vue指令。

自定义指令的写法有两种如下: (假设我们写一个v-big的指令)

方式一,函数式:(简便一些,但是不能处理细节问题)big:function(){}
方式二,对象式:(能够处理一些细节问题。)big:{key:vale,key:vale...key:vale}

8.2 自定义指令的 element参数 和 binding参数



自定义指令,directives就有指令的意思。必须理解好element和binding的结构内容。



自定义指令的 element参数:

element就是我们标记的dom标签元素本身,这里我们可以判别element是否为真实DOM。

因为Vue有一个虚拟DOM,所以判断是否为虚拟DOM还是真实DOM,就可以通过下面两种方式来判别:


  • 方式一:console.dir()来打印元素属性,真实DOM包含很多元素属性。
    通过使用console.dir()来打印出它的元素内容是否包含真实dom的属性。
    在控制台中显示指定Javascript对象的属性,并通过类似文件树样式的交互列表显示。
  • 方式二:instanceof HTMLElement 来判别返回true就是真实DOM

在这里插入图片描述



自定义指令的 binding参数:

在这里插入图片描述

演示函数式写法:


当前n的值为:

放大10倍后的n的值为:





自定义指令什么时候会被调用?
1.指令与元素成功绑定时(一上来)。2. 指令所在的模板重新解析时,打个比方:如果我们在上面定义了name,我们修改name,照样会引起big的调用。


8.3 自定义指令 对象式



自定义指令Vue函数式一个小问题:






对于上面的问题我们就要用对象式来操作了:

对象式,要理解好三个函数:


  • bind(element,binding){}函数:指令与元素成功绑定时(就是第一次加载页面绑定指令的时候)使用bind函数。

  • inserted(element,binding){}函数:指令所在元素被插入页面时,使用inserted函数。

  • update(element,binding){}函数:指令所在的模板被重新解析时,使用update()函数。





Vue自定义指令对于多个单词要使用" - "来连接:
在这里插入图片描述
在这里插入图片描述



对于自定义指令directives这里有一个非常注意的点,在它里面定义的this指向的是Window全局,而不是Vue实例对象。


8.4 全局自定义指令



在这里插入图片描述


9. Vue的 生命周期


9.1 Vue的生命周期 介绍



Vue绑定css属性的小注意事项:
在这里插入图片描述



setInterval() 方法重复调用一个函数或执行一个代码段,在每次调用之间具有固定的时间延迟。


hello , world





Vue的生命周期又名:生命周期回调函数,生命周期函数,生命周期钩子。

在这里插入图片描述


9.2 Vue生命周期的 整体流程



整体流程如下:
在这里插入图片描述


9.3 模板编译的流程



在这里插入图片描述


9.4 Vue中的template 和 template标签



Vue中的template注意事项:

template需要注意的是不能包含两个根元素节点,h2和button就不能同时存在。
template写的内容会替换掉页面指向的内容。如下:

在这里插入图片描述
Vue中的template,设置template标签情况:
template标签可以用,但是要注意下面的情况!!

在这里插入图片描述


9.5 Vue的生命周期 更新流程



updated更新过程:

在这里插入图片描述


9.6 Vue的生命周期 销毁流程



vm.$destroy()作用:


完全销毁一个实例,清理它与其它实例的连接,解绑它的全部指令及事件监听器(这里的事件是自定义事件,原生的DOM不会改变)。


多数场景不应该调用这个方法,这个方法属于Vue实例对象自我解决(自杀)的效果。

在这里插入图片描述


9.7 Vue 整个生命周期的使用



生命周期就是在不同的阶段执行不同的方法。


hello,world



9.8 在beforeDestroy函数方法中,消除计时器等操作



计时器是全局的,并不是伴随Vue对象实例产生或者销毁。

因此,我们可以在beforeDestroy函数中,进行清除。

如果我们用$destroy来毁灭Vue实例对象,计时器它是不会被消除的,这个时候我们既要保证毁灭了Vue实例对象,又要保证计时器停止运作。

一般我们销毁实例对象后,关闭那些相关的进程,如计时器interval,我们可以再beforeDestroy中给他们定义关闭。





欢迎学习Vue




在这里插入图片描述


推荐阅读
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
author-avatar
云下拾雨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有