Vue学习笔记--第一章(尚硅谷学习视频总结)
创始人
2024-03-26 23:22:32
0

 

目录

 

一、第一章 Vue核心

1.1. Vue简介

1.1.1. 官网

1.1.2. 介绍与描述

1.1.3. Vue 的特点

1.1.4. 与其它 JS 框架的关联

1.1.5. Vue 周边库

1.2.初识Vue

1.3. 模板语法

1.4. 数据绑定

1.5 el与data的两种写法

1.6 MVVM模型

1.7 Vue中的数据代理

1.8.事件处理

1.8.1事件的基本使用

 1.8.2事件修饰符

 1.8.3 键盘事件

1.9.计算属性

1.10.监视属性

1.10.1监视属性基本用法

1.10.2深度监视

1.10.3监视简写

1.10.4监视属性和计算属性

1.11 绑定样式

1.12. 条件渲染

1.13.列表渲染

1.13.1 基本列表

1.13.2. key的作用与原理

1.13.3. 列表过滤

 1.13.4. 列表排序

 1.13.5. Vue数据监视

1.14 收集表单数据

1.15.过滤器

1.16. 内置指令

1.16.1. v-text指令

1.16.2. v-html指令

1.16.3. v-cloak指令

1.16.4. v-once指令

1.16.5. v-pre指令

1.17. 自定义指令

1.18. Vue生命周期

1.18.1引出生命周期

1.18.2. 分析生命周期

 1.18.3. 总结生命周期


一、第一章 Vue核心


1.1. Vue简介


1.1.1. 官网

  1. 英文官网
  2. 中文官网

1.1.2. 介绍与描述

  1. 动态构建用户界面的渐进式 JavaScript 框架
  2. 作者: 尤雨溪

1.1.3. Vue 的特点

  1. 遵循 MVVM 模式
  2. 编码简洁, 体积小, 运行效率高, 适合移动/PC 端开发
  3. 它本身只关注 UI, 也可以引入其它第三方库开发项目

1.1.4. 与其它 JS 框架的关联

  1. 借鉴 Angular 的模板和数据绑定技术
  2. 借鉴 React 的组件化和虚拟 DOM 技术

1.1.5. Vue 周边库

  1. vue-cli: vue 脚手架
  2. vue-resource
  3. axios
  4. vue-router: 路由
  5. vuex: 状态管理
  6. element-ui: 基于 vue 的 UI 组件库(PC 端)
    ……

1.2.初识Vue



Document

hello,{{name}},{{address}}

{{Date.now()}}

注意:
1.想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象;
2.root容器里的代码依然符合html规范,只不过混入了一些特殊的Vue语法;
3.root容器里的代码被称为【Vue模板】;
4.Vue实例和容器是一一对应的;
5.真实开发中只有一个Vue实例,并且会配合着组件一起使用;
6.{{xxx}}中的xxx要写js表达式,且xxx可以自动读取到data中的所有属性;
7.一旦data中的数据发生改变,那么页面中用到该数据的地方也会自动更新;

注意区分:js表达式 和 js代码(语句)
1.表达式:一个表达式会产生一个值,可以放在任何一个需要值的地方:
(1). a
(2). a+b
(3). demo(1)
(4). x === y ? ‘a’ : ‘b’
2.js代码(语句)
(1). if(){}
(2). for(){}

1.3. 模板语法


Document

插值语法

你好,{{name}}


指令语法

去百度

结果:

总结:

Vue模板语法有2大类:

1.插值语法:

功能:用于解析标签体内容。

写法:{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性。

 2.指令语法:

 功能:用于解析标签(包括:标签属性、标签体内容、绑定事件.....)。

举例:v-bind:href="xxx" 或  简写为 :href="xxx",xxx同样要写js表达式,且可以直接读取到data中的所有属性。

1.4. 数据绑定



数据绑定
单向数据绑定:
双向数据绑定:

总结:

Vue中有2种数据绑定的方式:

  1. 单向绑定(v-bind):数据只能从data流向页面
  2. 双向绑定(v-model):数据不仅能从data流向页面,还可以从页面流向data

注意:双向绑定一般都应用在表单类元素上(如:

阅读并接受《用户协议》

效果:

总结:

收集表单数据:

  • 若:,则v-model收集的是value值,用户输入的内容就是value值
  • 若:,则v-model收集的是value值,且要给标签配置value属性
  • 若:
    • 没有配置value属性,那么收集的是checked属性(勾选 or 未勾选,是布尔值)
    • 配置了value属性:
      • v-model的初始值是非数组,那么收集的就是checked(勾选 or 未勾选,是布尔值)
      • v-model的初始值是数组,那么收集的就是value组成的数组

v-model的三个修饰符:

  • lazy:失去焦点后再收集数据
  • number:输入字符串转为有效的数字
  • trim:输入首尾空格过滤

1.15.过滤器


过滤器

显示格式化后的时间

现在是:{{fmtTime}}

现在是:{{getFmtTime()}}

现在是:{{time | timeFormater}}

现在是:{{time | timeFormater('YYYY_MM_DD') | mySlice}}

尚硅谷

{{msg | mySlice}}

效果:

总结:

过滤器:

  • 定义:对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理)。
  • 语法:
    • 注册过滤器:Vue.filter(name,callback) 或 new Vue{filters:{}}
    • 使用过滤器:{{ xxx | 过滤器名}} 或 v-bind:属性 = "xxx | 过滤器名"
  • 备注:
    • 过滤器可以接收额外参数,多个过滤器也可以串联
    • 并没有改变原本的数据,而是产生新的对应的数据

1.16. 内置指令

1.16.1. v-text指令


v-text指令
你好,{{name}}

 总结:

v-text指令:

1.作用:向其所在的节点中渲染文本内容。

2.与插值语法的区别:v-text会替换掉节点中的内容,{{xx}}则不会。

1.16.2. v-html指令


v-html指令
Hello,{{name}}

效果:

总结:

v-html指令:

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

1.16.3. v-cloak指令


v-cloak指令

{{name}}

总结:

v-cloak指令(没有值):

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

1.16.4. v-once指令



v-once指令

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

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

总结:

v-once指令:

  1. v-once所在节点在初次动态渲染后,就视为静态内容了

  2. 以后数据的改变不会引起v-once所在结构的更新,可以用于优化性能

1.16.5. v-pre指令



v-pre指令

Vue其实很简单

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

总结:

v-pre指令:

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

1.17. 自定义指令


自定义指令

当前的n值是:

放大10倍后的n值是:


 总结:

  1. 自定义指令定义语法:
    1. 局部指令:
      1.  new Vue({															directives:{指令名:配置对象}   }) 		
        
      2.  new Vue({															directives:{指令名:回调函数}   }) 	
        
    2. 全局指令:
      1. Vue.directive(指令名,配置对象)
      2. Vue.directive(指令名,回调函数)​​​​​​

                

Vue.directive('fbind',{//指令与元素成功绑定时(一上来)bind(element,binding){element.value = binding.value},//指令所在元素被插入页面时inserted(element,binding){element.focus()},//指令所在的模板被重新解析时update(element,binding){element.value = binding.value}
})

2. 配置对象中常用的3个回调函数:

  1. bind(element,binding):指令与元素成功绑定时调用
  2. inserted(element,binding):指令所在元素被插入页面时调用
  3. update(element,binding):指令所在模板结构被重新解析时调用

3.备注:

  1. 指令定义时不加“v-”,但使用时要加“v-”

  2. 指令名如果是多个单词,要使用kebab-case命名方式,不要用camelCase命名

1.18. Vue生命周期

1.18.1引出生命周期


引出生命周期

你好啊

欢迎学习Vue

总结:

生命周期:

  1. 又名:生命周期回调函数、生命周期函数、生命周期钩子
  2. 是什么:Vue在关键时刻帮我们调用的一些特殊名称的函数
  3. 生命周期函数的名字不可更改,但函数的具体内容是程序员根据需求编写的
  4. 生命周期函数中的this指向是vm 或 组件实例对象

1.18.2. 分析生命周期

 

  


分析生命周期

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

结果:

 1.18.3. 总结生命周期


引出生命周期

欢迎学习Vue

总结:

常用的生命周期钩子:

  1. mounted:发送ajax请求、启动定时器、绑定自定义事件、订阅消息等初始化操作
  2. beforeDestroy:清除定时器、解绑自定义事件、取消订阅消息等收尾工作

关于销毁Vue实例:

  1. 销毁后借助Vue开发者工具看不到任何信息
  2. 销毁后自定义事件会失效,但原生DOM事件依然有效
  3. 一般不会在beforeDestroy操作数据,因为即便操作数据,也不会再触发更新流程了

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...