vue3
硅谷甄选运营平台此次教学课程为硅谷甄选运营平台项目,包含运营平台项目模板从0到1开发,以及数据大屏幕、权限等业务。 此次教学课程涉及到技术栈包含:vue3+TypeScript+vue-router+pinia+element-plus+axios+echarts等技术栈。 一、vue3组件通信方式通信仓库地址:https://gitee.com/jch1011/vue3_communication.git 不管是vue2还是vue3,组件通信方式很重要,不管是项目还是面试都是经常用到的知识点。 比如:vue2组件通信方式 props:可以实现父子组件、子父组件、甚至兄弟组件通信 自定义事件:可以实现子父组件通信 全局事件总线$bus:可以实现任意组件通信 pubsub:发布订阅模式实现任意组件通信 vuex:集中式状态管理容器,实现任意组件通信 ref:父组件获取子组件实例VC,获取子组件的响应式数据以及方法 slot:插槽(默认插槽、具名插槽、作用域插槽)实现父子组件通信…….. 1.1propsprops可以实现父子组件通信,在vue3中我们可以通过defineProps获...
JS中的this
JavaScript 中的 thisJavaScript 中的this关键字是一个非常有用的概念,但也是比较容易让人混淆的。 它和其他语言中使用的this或者self关键字有些不同。在 JavaScript 中,this指向的是当前调用函数的对象。这意味着相同的函数可能由不同的对象调用,并可能每次调用时都有不同的this值。 this 的指向方式在 JavaScript 中,函数可以通过多种方式来调用,进而影响this的指向。以下是常见的情况及其指向: 全局对象中的函数调用——指向全局对象(浏览器中为 window)。 12345function myFunction() { console.log(this); // 输出:Window {chrome:..., ...}}myFunction(); 直接调用对象上的方法——指向该对象。 12345678const obj = { name: "Tom", getName() { console.log(this.name); }...
JS中apply、call和bind
关于 JavaScript 中的 apply、call 和 bind 的使用区别JavaScript 中的apply、call和bind都是用来动态改变函数运行时上下文的。下面分别对它们进行详细讲解。 applyapply()是 Function 对象自带的方法,用于修改函数调用时this指向的对象,同时还可以将函数的参数以数组形式传递给它。 12345678function foo() { console.log(this.a); console.log(arguments);}const obj = { a: 1 };foo.apply(obj, [2, 3]); // 输出:1 [2, 3] 在上述例子中,我们在foo函数的原本调用:foo() 中没有显式地指明它的this值。但是,在调用foo.apply(obj, [2, 3])时,foo()方法就像被附加到了obj后一样,this.a被正确地设置为了 1。上例中的第二个参数就是foo需要的实参。 apply()方法的另一个常见用法就是借用函数: 123456789functi...
JS面向对象
JavaScript 面向对象JavaScript 是一门面向对象的编程语言,支持创建对象、继承和多态等特性。 1.对象基础首先我们需要了解 JavaScript 中的对象。在 JavaScript 中,几乎所有东西都是对象。对象是一组无序的属性集合,每个属性都具有键和值。例如: 12345678910var obj = { name: "张三", age: 20, sayHello: function () { console.log("Hello!"); }};console.log(obj.name); // 输出 "张三"obj.sayHello(); // 调用 sayHello 方法,输出 "Hello!" 上述代码定义了一个对象 obj,包含了名字、年龄和方法 sayHello。我们可以使用 . 运算符获取对象的属性值,或者直接调用对象方法。 2.对象构造函数通过构造函数创建对象是一种常见的面向对象方式,在 JavaScript 中也可以类比 J...
JS字符串的拓展方法
JavaScript 字符串的拓展方法 JavaScript 字符串提供了很多实用的拓展方法,以下列举其中所有: String.prototype.indexOf():返回字符串中指定子串的位置,如果不存在则返回 -1。 String.prototype.lastIndexOf():从字符串尾部开始搜索指定子串所在位置,如果不存在则返回 -1。 String.prototype.charAt():返回字符串中指定位置的字符。 String.prototype.charCodeAt():返回 Unicode 编码表中指定位置的字符的数字编码。 String.prototype.concat():将多个字符串拼接成一个新的字符串,并返回结果。 String.prototype.includes():判断当前字符串中是否包含某个子字符串,返回布尔值。 String.prototype.endsWith():判断当前字符串是否以指定的子串结尾,返回布尔值。 String.prototype.startsWith():判断当前字符串是否以指定的子串开头,返回布尔值。 String.pr...
JS数组的拓展方法
JavaScript 数组的拓展方法 JavaScript 提供了很多实用的数组拓展方法,以下列举其中所有(不包含一些废弃的方法): 拓展方法速查 改变原数组 不改变原数组 函数部分 push concat forEach unshift slice map pop join filter shift includes some splice indexOf every reverse concat findIndex reduce 方法示例concatArray.prototype.concat:连接两个或多个数组,并返回一个新数组。 copyWithinArray.prototype.copyWithin:从数组内部复制一段数据到数组另一个位置上,并覆盖原有内容。它接受两个必需参数,第一个参数为目标起始索引,第二个参数为复制起始索引。第三个可选参数为复制结束索引,如果省略将复制至末尾。 entriesArray.prototype.entries:返回一个包含每个元素 key 和 value 的新数组迭代器对象,可以通过 f...
JS函数相关
JS 函数相关JS 闭包在 JavaScript 中,闭包(Closure)是常见的概念之一。它可以用来创建独立的变量空间,保护变量,同时也能为编写高级函数提供支持。下面我们来详细学习一下什么是闭包以及它的应用。 什么是 JS 闭包?简而言之,闭包就是一个函数中包含了另一个函数,并且内部函数可以访问外部函数的变量,即使外部函数已经执行完毕。这种情况下,内部函数所使用到的外部变量将被保存在内存中,不会被垃圾回收器回收,这就是闭包。 实现 JS 闭包下面是一个简单的示例代码,展示了如何创建闭包: 123456789101112function outerFunc() { const name = "John"; function innerFunc() { console.log(`Hello, ${name}!`); } return innerFunc;}const result = outerFunc();result(); // 输出:Hello, John! 在这个示例中,outerFunc ...
JS节流防抖
JS 中的节流与防抖 JS 截流和防抖都是为了避免频繁触发函数而设计的。其中截流主要用于减少请求发送的频率,防抖主要用于延迟执行并取消前一次的操作。 什么是 JS 截流?JS 截流(throttling)是指在一段时间内只执行一次回调函数,而忽略其他重复的事件或函数调用。例如,在滑动窗口时,如果每 1 毫秒都去获取数据,那系统很容易崩溃。因此,可以设置一个时间间隔使其每隔一定时间才去获取数据。 实现 JS 截流以下是使用 JavaScript 实现截流的示例代码: 12345678910function throttle(func, wait) { let lastTime = 0; return function () { const nowTime = new Date().getTime(); if (nowTime - lastTime > wait) { func.apply(this, arguments); lastTime = nowTime; } };} 其中,func是被节流的函...
JS正则基础使用
JavaScript 正则表达式正则表达式是一种强大的文本处理工具,可以用来匹配、查找和替换指定的文本模式。在 JavaScript 中,正则表达式是一种特殊类型的对象,也支持使用正则表达式字面量或者 RegExp 构造函数来创建和使用正则表达式。 正则表达式的基本语法创建正则表达式在 JavaScript 中,可以使用两种方式来创建正则表达式: 字面量形式:使用 / 开始和结束,例如 /pattern/flags; 构造函数形式:使用 new RegExp(pattern, flags),其中 pattern 是正则表达式模式字符串,flags 是可选的标志字符串。 举个例子,下面是一个匹配数字的简单正则表达式: 12345// 使用字面量形式创建正则表达式const digitRegex = /\d+/;// 使用构造函数形式创建正则表达式const digitRegex = new RegExp("\\d+"); 需要注意的是,使用正则表达式时,反斜杠 \ 是一个特殊字符,表示转义。因此,在字面量形式中,如果希望匹配反斜杠本身,需要使用双反斜杠 \\...
一些有用的网站
一些有用的网站 https://bing.ioliu.cn https://jrgraphix.net/research/unicode_blocks.php https://cli.im https://www.nav3.cn https://ihateregex.io https://icones.netlify.app https://caniuse.com
