随笔分类 -  前端学习

自己看前端视频的一些基础学习,加油,颜孙达
摘要:vue3中路由器的工作模式 主要有两种,history和hash模式 history vue2 -> model:history vue3 -> history:createWebHistory() React:BrowserRouter history具有的优点:URL更加美观,不带有#,更接近传 阅读全文
posted @ 2024-10-08 09:38 洛飞 阅读(139) 评论(0) 推荐(0)
摘要:hooks实现将一个功能的所有数据、方法、生命周期函数放到一块去使用。 我们在src底下定义个Hooks文件夹,将我们要进行模块化的功能设置为use功能名。 例如:我要将点我加一这个功能进行hooks,则使用useSum.ts这个文件定义功能逻辑。 在这个ts里面需要export default 函 阅读全文
posted @ 2024-10-07 19:52 洛飞 阅读(112) 评论(0) 推荐(0)
摘要:父组件 <template> <person :list="personList" /> </template> 子组件用defineProps 来接收 const props = defineProps({ list: { type:Array, required:true, }, }); con 阅读全文
posted @ 2024-10-07 14:03 洛飞 阅读(13) 评论(0) 推荐(0)
摘要:watchEffect和watch的对比 都能监听数据的变化,不同的是监听数据的方式不同。 watch要明确指出要监听的数据 watchEffect不用明确指出要监听的数据,函数中用到哪些属性就监听那些属性。 watchEffect(() => { if (person.age > 22) { co 阅读全文
posted @ 2024-10-06 21:32 洛飞 阅读(23) 评论(0) 推荐(0)
摘要:使用watch时,如果想监视对象的内部属性值。需要使用watch的第三个参数的配置对象,手动开启深度监视。 //使用watch时如果想监视对象内部的属性值,需要使用watch的第三个参数,手动开启深度监视 watch(person, (newValue, oldValue)=>{ console.l 阅读全文
posted @ 2024-10-06 19:38 洛飞 阅读(301) 评论(0) 推荐(0)
摘要:watch 监听定义的数据发生改变的时候执行什么函数 watch 方法有两个参数 watch(sum,箭头函数) 这个箭头函数里面有两个参数(newValue,oldValue)=> {},如下代码 <template> <!-- watch;监视数据变化 vue3 可以监视一下四种数据类型: re 阅读全文
posted @ 2024-10-06 14:22 洛飞 阅读(83) 评论(0) 推荐(0)
摘要:computed 的作用就是监测变量是否发生改变。如果变量发生了改变,那么computed定义的方法就会执行。 在vue3中computed新增get 和set方法。分别对应修改和设置值 阅读全文
posted @ 2024-10-06 12:38 洛飞 阅读(97) 评论(0) 推荐(0)
摘要:可以看链接 https://blog.csdn.net/weixin_46146718/article/details/139269419 阅读全文
posted @ 2024-10-05 11:03 洛飞 阅读(36) 评论(0) 推荐(0)
摘要:有两种方式可以搭建: 一:使用vue-cli中的webpack创建 第二:推荐使用vite来创建项目 vite是新一代前端构建工具,新的前端构建工具,比webpack要快一些。 npm create vue@latest 创建完项目后,我们可以看到项目最外层有index.html Vite项目中,i 阅读全文
posted @ 2024-10-04 11:17 洛飞 阅读(138) 评论(0) 推荐(0)
摘要:当我们要对事件定义类型。一种是通过console.log(e)来看事件的类型。另外一种是@事件名的时候,将$event写好,鼠标放上去看事件类型。再讲$event删除。 如下: 然后我们定义函数的时候就可以指定事件类型了 const clickMi = (e:MouseEvent)=>{ conso 阅读全文
posted @ 2024-10-01 15:50 洛飞 阅读(45) 评论(0) 推荐(0)
摘要:我们平时的写法 import { ref } from "vue"; const msg = ref("你好世界"); 使用TS的写法 import { ref } from "vue"; const msg = ref<string>("你好世界"); listType表示数组里面放对象,我们可以 阅读全文
posted @ 2024-10-01 15:27 洛飞 阅读(225) 评论(0) 推荐(0)
摘要:向父元素发送消息 之前的语法: 在TS语法中,我们既要对defineEmits做类型约束,又要对emits做类型约束。 最主要是对defineEmits做一个泛型的约束。 //在泛型对象中,有几个事件就写几个约束 type emitsType = { //()中有n个参数,第一个固定的是e,其他有具 阅读全文
posted @ 2024-10-01 14:25 洛飞 阅读(312) 评论(0) 推荐(0)
摘要:小知识点:在vscode中定义好子组件的vue视图后。我们可以直接使用<子组件/>来使用子组件,因为我们使用了import插件,他会自动import 所需文件。 使用一:父向子传值,我们之前父向子传值的时候,子组件是如下: defineProps({ house: { type: String, r 阅读全文
posted @ 2024-10-01 11:21 洛飞 阅读(66) 评论(0) 推荐(0)
摘要:泛型是可以在保证类型安全的前提下,让函数等与多重类型一起工作,从而实现复用。常用于:函数、接口、class中。 泛型在定义的时候并不知道具体是什么类型,只有在调用的时候才知道是什么类型。 如下: /* 需求:定义一个getId方法,传入一个值,返回这个值 */ function getId<T>(v 阅读全文
posted @ 2024-10-01 10:09 洛飞 阅读(12) 评论(0) 推荐(0)
摘要:先看两端代码 let str = "hello" const str1:string = "hello" const str2 = "hello" 在上述代码中用let声明的变量是字符类型的 而用const 没有指定类型的话,其是字面量类型,不能随意进行变更。 阅读全文
posted @ 2024-09-29 22:38 洛飞 阅读(11) 评论(0) 推荐(0)
摘要:接口类型 作用:给对象约束属性和方法 基础语法: interface 接口名 { 属性名:类型 } 接口名称推荐以I开头 接口声明后,直接使用接口名称作为变量类型 interface person { name: string age: number gender: string sayHi: () 阅读全文
posted @ 2024-09-29 20:49 洛飞 阅读(24) 评论(0) 推荐(0)
摘要:数组的定义 普通定义: let arr: number[] = [4, 6, 7, 9]; //需求:希望数组里面可以存数字或者字符串 联合数据类型: //联合数据类型:|的优先级比较低,需要用()包裹提升优先级 //一旦使用联合查询,说明arr里面的值既可能是number也可能是string,所以 阅读全文
posted @ 2024-09-29 17:11 洛飞 阅读(295) 评论(0) 推荐(0)
摘要:Node.js/浏览器,只认识JS代码,不认识TS代码,需要将TS代码转化为JS代码,然后才能运行。 安装命令:npm i -g typescript 或者 yarn global add typescript 注意:Mac电脑安装全局包时,需要通知添加sudo获取权限。sudo npm i -g 阅读全文
posted @ 2024-09-28 20:16 洛飞 阅读(29) 评论(0) 推荐(0)
摘要:由于对象采用的是引用赋值。所以直接用“=”,修改属性的时候也会将原来的变量改变掉。 因此,就有了浅拷贝与深拷贝 用{...obj}和object.assign表示浅拷贝,其只拷贝外围对象的一层,而不会拷贝多层。 方法二:使用Object.assign 深拷贝的实现 其一是通过递归实现拷贝。其二lod 阅读全文
posted @ 2024-09-28 19:50 洛飞 阅读(13) 评论(0) 推荐(0)