Vue 学习总结笔记 (一),大专生出身

第一个提示:提示是告诉我们要安装Vue的devtools开发者工具,安装这个插件后就不会报错了。

第二个提示:是提示我们当前是在开发者环境中,部署项目要在生产模式!

1.5 Vue.config 配置全局



对于上面的提示,第一个提示安装devtools就没了,但是想要第二个也不提示,就需要在Vue.config中配置一下: Vue.config.productionTip = false;

首先,我们去Vue官方网站,查看Vue相关的API ,也是可以查询到一些全局配置的!会看官网很重要!一定要学习看官网!

https://cn.vuejs.org/v2/api/

可以在控制台直接打印出Vue.config的内容:

在这里插入图片描述

2. MVC和MVVC的基本流程

==============================================================================


mvc:(主要考虑后端分层开发)

请添加图片描述


mvvc:(主要考虑前端使用vm来分离)

Model、View、VM ViewModel

请添加图片描述

3. Vue 的使用详解

==========================================================================

3.1 Vue 的mvvm架构



链接上面的mvvm解释,下面整体就是一个类似mvvm的架构!

在这里插入图片描述

vm(ViewModel)就是const定义的vm对象。

下面,就是Vue的一个工作流程:

  • 想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象。

  • html代码容器的代码依然符合html规范,只不过混入了一些特殊的Vue语法。

  • 代码容器里的代码被称为Vue模板。

先有html代码容器,再有Vue实例,在实例中会解析html代码容器中的代码语法(针对Vue的语法),解析完后,会将之前的容器替换掉,放到前端页面上面。

3.2 Vue 的注意事项 (重要)


3.2.1 Vue实例对象和容器是一一对应的关系


一个Vue实例,只能对应一个容器。

在这里插入图片描述

同样,一个容器也只能对应一个Vue实例对象。

在这里插入图片描述

因此,在Vue中,Vue实例对象和容器是一一对应的关系!!!!

3.2.2 开发中只有一个Vue实例


开发中只有一个Vue实例,但是在Vue实例中可以引入多个Vue组件。

在这里插入图片描述

3.2.3 Vue中 {{ xxx }} 可以写什么?


常见的能写的如下:

  • Vue实例对象中data的参数。

  • {{1 + 2}} 页面显示为3。

  • {{Date.now()}} 页面显示为当前秒数。

总结起来,{{xxx}}里面可以写JS表达式的东西!


那么,什么是JS表达式?

js表达式, js语句 , js代码 这三个要区分好!

js表达式(expressions):

在这里插入图片描述

js语句(statements):

在这里插入图片描述

js代码就是平时我们写的js代码。

4. Vue 模板语法

=========================================================================

4.1 {{xxx}} 插值语法



就是双花括号{{xxx}},这种语法就是插值语法。

4.2 v-??? 指令语法



指令语法功能:

用于解析标签,包括:标签属性、标签体内容、绑定时间等等,例如:v-bind(对标签属性)。


v-bind 的使用(v-bind: 可以简写为 : ):

  • v-bind能够将所对应的属性中的引号里面的值,当成js表达式来执行(包括Vue实例的data属性中的值)。
Document

差值语法

你好,{{name}}


指令语法

百度1

百度2

总结起来就是,标签体内的值使用插值语法,标签体属性的值使用指令语法。


除了v-bind指令,还有很多!此外,我们经常用嵌套格式来获取命令,也可以调用一些方法:

请添加图片描述

5. 单向绑定 和 双向绑定

============================================================================


对于标签元素的属性绑定有两种:

  • v-bind是单向绑定,v-bind: 可以简写为: 。

  • v-model是双向绑定。v-model只能应用在表单元素(输入元素)上 ,简而言之就是要有value值,v-model:value = "xxx"可以简写为v-model = “xxx” 。。

  • 这里的绑定是和Vue开发者工具里的data来绑定的。

请添加图片描述

在devtools的效果图如下:

请添加图片描述

请添加图片描述

6.el和data的两种写法方式

=============================================================================

6.1 实例Vue对象 的一些方法



在这里插入图片描述

那么其他不带$符号的方法属性,不是给开发人员使用的,但是底层在使用,不能随便修改!

请添加图片描述

6.2 el的两种写法



  • 第一种是直接定义el来指定容器。

  • 第二种是$mount()方法来实现来指定容器,mount意思就是挂载。

Document

{{name}}

6.3 data 两种写法方式



  • 第一种:对象式。

  • 第二种:函数式。

注意函数式,非常重要,组件必须用到函数式,此外,data函数可以简化,并且这里不能使用箭头函数,因为这里的this指向必须是Vue实例对象。

在解释一下,箭头函数本身是没有this的,因此它就会向上一层查找!

Title

{{name}}

7. MVVM的架构图

=========================================================================


一般我们后台代码有mvc分层架构,前端代码也是有mvc或mvvm分层架构的。

而在vue中,我们使用mvvm的分层架构。

DOM Listeners :模块监听。

Data Bindings : 数据绑定。

这俩个都是很重要的存在记住!

请添加图片描述

注意:

**1. data中所有的属性,最后都出现在了vm实例对象上面。

2. vm升上所有的属性和Vue原型上所有的属性,都可以直接在Vue模板中使用。

见源码:**

Document

学校名称:{{name}}

学校地址:{{address}}

1+1 为什么等于 {{1+1}} ?

测试Vue的$options,{{$options}}

测试Vue原型$emit,{{$emit}}

测试没有$开头的 _c,{{_c}}

在这里插入图片描述

8. 数据代理 Object.defineProperty方法

=============================================================================================

8.1 Object.defineProperty方法 介绍



Object.defineProperty方法很重要,Vue的底层多处都使用到了该方法。

例如:vue的数据劫持,数据代理,计算属性等底层都使用到了该方法。

Object.defineProperty,翻译过来就是定义属性,换句话说该方法就是用来给对象定义属性的。

Object.defineProperty的参数:

  • 参数1:目标对象。

  • 参数2:要修改或者添加的属性名称。

  • 参数3:目标对象属性的一些特征 (也就是配置项,值为格式类似{ xxx:xxx }的对象),该对象的参数如下:

  • 参数1:value:属性值

  • 参数2:writable:对象属性值是否可以被修改 true允许 false不允许

  • 参数3:configurable:对象属性是否可以被删除 true允许 false不允许

  • 参数4:enumerable:对象属性是否可被枚举

  • 参数5:get():给一个属性提供getter方法,当访问这个对象的属性值得时候触发该方法

  • 参数6:set():给一个属性提供setter方法,当设置属性值得时候触发该方法

Title

注意:ObjectdefineProperty增加的属性,在打印出来后,有些不一样,颜色会比其他直接定义的属性浅一些,因此,可以通过这种方式来判别一下该属性是否是ObjectdefineProperty来创建的。

在这里插入图片描述


注意:Object.defineProperty定义的属性默认都是为false:

  • enumerable的默认值为false,不能被枚举的(就是不能被遍历的)。

  • writable的默认值为false,对象属性值不可以被修改。

  • configurable的默认值为false,对象属性不可以被删除。


下面演示一下enumerable枚举的效果:

下面Object.keys()的用法:可以将对象里的所以的键取出来放到一个数组中。

Title

在这里插入图片描述

8.2 Object.defineProperty方法 的get和set使用


8.2.1 get方法(也叫getter) 使用



常用场景(重要):

在这里插入图片描述

使用Object.definedProperty的get来解决上图问题:

Object.definedProperty的get其实就是getter,获取设置属性时,会调用get方法,从而return值。

在这里插入图片描述


也可以看看get和set中函数的三种写法形式:

Title

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

数据结构与算法

这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题

排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。

  • 二叉树层序遍历
  • B 树的特性,B 树和 B+树的区别
  • 尾递归
  • 如何写一个大数阶乘?递归的方法会出现什么问题?
  • 把多维数组变成一维数组的方法
  • 知道的排序算法 说一下冒泡快排的原理
  • Heap 排序方法的原理?复杂度?
  • 几种常见的排序算法,手写
  • 数组的去重,尽可能写出多个方法
  • 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
  • 知道数据结构里面的常见的数据结构
  • 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
  • 合并两个有序数组
  • 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

2772102728)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-djdgjmsC-1712772102729)]

数据结构与算法

这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题

排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。

  • 二叉树层序遍历
  • B 树的特性,B 树和 B+树的区别
  • 尾递归
  • 如何写一个大数阶乘?递归的方法会出现什么问题?
  • 把多维数组变成一维数组的方法
  • 知道的排序算法 说一下冒泡快排的原理
  • Heap 排序方法的原理?复杂度?
  • 几种常见的排序算法,手写
  • 数组的去重,尽可能写出多个方法
  • 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
  • 知道数据结构里面的常见的数据结构
  • 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
  • 合并两个有序数组
  • 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)

[外链图片转存中…(img-0I8WKbhk-1712772102729)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-LxY6RNWU-1712772102729)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值