02 2021 档案

摘要:全局 API 修改 Global API Change Vue2 的全局配置 import Vue from 'vue' import App from './App.vue' Vue.config.ignoredElements = [/^app-/] Vue.use(/* ... */) Vue 阅读全文
posted @ 2021-02-28 20:09 `Duet` 阅读(189) 评论(0) 推荐(0)
摘要:Suspense - 异步请求好帮手第二部分 使用 async await 改造一下异步请求, 新建一个 DogShow.vue 组件 <template> <img :src="result && result.message"> </template> <script lang="ts"> im 阅读全文
posted @ 2021-02-28 20:02 `Duet` 阅读(299) 评论(0) 推荐(0)
摘要:Suspense - 异步请求好帮手第一部分 定义一个异步组件,在 setup 返回一个 Promise,AsyncShow.vue <template> <h1>{{result}}</h1> </template> <script lang="ts"> import { defineCompon 阅读全文
posted @ 2021-02-28 19:27 `Duet` 阅读(1017) 评论(0) 推荐(0)
摘要:Teleport - 瞬间移动 第二部分 Modal 组件 <template> <teleport to="#modal"> <div id="center" v-if="isOpen"> <h2><slot>this is a modal</slot></h2> <button @click=" 阅读全文
posted @ 2021-02-28 19:13 `Duet` 阅读(117) 评论(0) 推荐(0)
摘要:Teleport - 瞬间移动 第一部分 Teleport 文档地址 <template> // vue3 新添加了一个默认的组件就叫 Teleport,我们可以拿过来直接使用,它上面有一个 to 的属性,它接受一个css query selector 作为参数,这就是代表要把这个组件渲染到哪个 d 阅读全文
posted @ 2021-02-28 15:19 `Duet` 阅读(187) 评论(0) 推荐(0)
摘要:使用 defineComponent 包裹组件 defineComponent 文档地址 阅读全文
posted @ 2021-02-28 12:01 `Duet` 阅读(4935) 评论(0) 推荐(0)
摘要:模块化结合typescript - 泛型改造 // 为函数添加泛型 function useURLLoader<T>(url: string) { const result = ref<T | null>(null) // 在应用中的使用,可以定义不同的数据类型 interface DogResul 阅读全文
posted @ 2021-02-28 11:30 `Duet` 阅读(353) 评论(0) 推荐(0)
摘要:模块化难度上升 - useURLLoader axios 文档地址 // 安装 axios 注意它是自带 type 文件的,所以我们不需要给它另外安装 typescript 的定义文件 npm install axios --save import { ref } from 'vue' import 阅读全文
posted @ 2021-02-27 12:22 `Duet` 阅读(328) 评论(0) 推荐(0)
摘要:模块化开发 第一部分 鼠标追踪器 // 在单组件内添加对应逻辑 const x = ref(0) const y = ref(0) const updateMouse = (e: MouseEvent) => { x.value = e.pageX y.value = e.pageY } onMou 阅读全文
posted @ 2021-02-26 17:54 `Duet` 阅读(237) 评论(0) 推荐(0)
摘要:侦测变化 - watch Watch 文档地址 // watch 简单应用 watch(data, () => { document.title = 'updated ' + data.count }) // watch 的两个参数,代表新的值和旧的值 watch(refData.count, (n 阅读全文
posted @ 2021-02-26 16:59 `Duet` 阅读(991) 评论(0) 推荐(0)
摘要:Vue3 生命周期 生命周期 在 setup 中使用的 hook 名称和原来生命周期的对应关系 beforeCreate → 不需要 created → 不需要 beforeMount → onBeforeMount mounted → onMounted beforeUpdate → onBefo 阅读全文
posted @ 2021-02-26 14:33 `Duet` 阅读(218) 评论(0) 推荐(0)
摘要:Reactive 函数 Reactive 函数 import { ref, computed, reactive, toRefs } from 'vue' interface DataProps { count: number; double: number; increase: () => voi 阅读全文
posted @ 2021-02-25 20:49 `Duet` 阅读(639) 评论(0) 推荐(0)
摘要:Ref 语法 setup 方法 ref 函数 <template> <h1>{{count}}</h1> <h1>{{double}}</h1> <button @click="increase">+1</button> </template> import { ref } from "vue" s 阅读全文
posted @ 2021-02-25 20:26 `Duet` 阅读(1691) 评论(0) 推荐(0)
摘要:项目结构和插件 Eslint 插件 如果 eslint 不生效,可以在根目录创建 .vscode 文件夹,然后在文件夹中创建 settings.json 然后输入 { "eslint.validate": [ "typescript" ] } Vetur 插件 阅读全文
posted @ 2021-02-25 14:31 `Duet` 阅读(189) 评论(0) 推荐(0)
摘要:配置 vue3 开发环境 Vue cli // 安装或者升级 npm install -g @vue/cli # OR yarn global add @vue/cli // 保证 vue cli 版本在 4.5.0 以上 vue --version // 创建项目 vue create my-pr 阅读全文
posted @ 2021-02-24 11:51 `Duet` 阅读(230) 评论(0) 推荐(0)
摘要:内置类型 内置类型 const a: Array<number> = [1,2,3] // 大家可以看到这个类型,不同的文件中有多处定义,但是它们都是 内部定义的一部分,然后根据不同的版本或者功能合并在了一起,一个interface 或者 类多次定义会合并在一起。这些文件一般都是以 lib 开头,以 阅读全文
posted @ 2021-02-23 21:19 `Duet` 阅读(301) 评论(0) 推荐(0)
摘要:类型别名 和 交叉类型 类型别名 Type Aliases 类型别名,就是给类型起一个别名,让它可以更方便的被重用。 let sum: (x: number, y: number) => number const result = sum(1,2) type PlusType = (x: numbe 阅读全文
posted @ 2021-02-23 18:34 `Duet` 阅读(75) 评论(0) 推荐(0)
摘要:泛型第三部分 - 泛型与类和接口 class Queue { private data = []; push(item) { return this.data.push(item) } pop() { return this.data.shift() } } const queue = new Qu 阅读全文
posted @ 2021-02-22 14:55 `Duet` 阅读(67) 评论(0) 推荐(0)
摘要:泛型第二部分 - 泛型约束 在函数内部使用泛型变量的时候,由于事先不知道它是哪种类型,所以不能随意的操作它的属性或方法 function echoWithArr<T>(arg: T): T { console.log(arg.length) return arg } // 上例中,泛型 T 不一定包 阅读全文
posted @ 2021-02-22 12:02 `Duet` 阅读(70) 评论(0) 推荐(0)
摘要:泛型 Generics 泛型 Generics 泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。 function echo(arg) { return arg } const result = echo(123) // 这时候我们发 阅读全文
posted @ 2021-02-22 11:09 `Duet` 阅读(63) 评论(0) 推荐(0)
摘要:枚举 Enums 枚举 Enums // 数字枚举,一个数字枚举可以用 enum 这个关键词来定义,我们定义一系列的方向,然后这里面的值,枚举成员会被赋值为从 0 开始递增的数字, enum Direction { Up, Down, Left, Right, } console.log(Direc 阅读全文
posted @ 2021-02-20 18:55 `Duet` 阅读(60) 评论(0) 推荐(0)
摘要:类与接口 类实现一个接口 interface Radio { switchRadio(trigger: boolean): void; } class Car implements Radio { switchRadio(trigger) { return 123 } } class Cellpho 阅读全文
posted @ 2021-02-20 18:42 `Duet` 阅读(67) 评论(0) 推荐(0)
摘要:Class 类 面向对象编程的三大特点 封装(Encapsulation):将对数据的操作细节隐藏起来,只暴露对外的接口。外界调用端不需要(也不可能)知道细节,就能通过对外提供的接口来访问该对象, 继承(Inheritance):子类继承父类,子类除了拥有父类的所有特性外,还有一些更具体的特性。 多 阅读全文
posted @ 2021-02-20 18:17 `Duet` 阅读(86) 评论(0) 推荐(0)
摘要:类型推论,联合类型 和 类型断言 Typescript 文档地址:类型推论 - type inference 联合类型 - union types // 我们只需要用中竖线来分割两个 let numberOrString: number | string // 当 TypeScript 不确定一个联 阅读全文
posted @ 2021-02-20 17:58 `Duet` 阅读(148) 评论(0) 推荐(0)
摘要:函数 Typescript 文档地址:Functions Function 函数 在 JS 中,函数是一等公民 // 来到我们的第一个例子,约定输入,约定输出 function add(x: number, y: number): number { return x + y } // 可选参数 fu 阅读全文
posted @ 2021-02-20 17:48 `Duet` 阅读(57) 评论(0) 推荐(0)
摘要:interface 接口 Typescript 文档地址:Interface 对对象的形状(shape)进行描述 Duck Typing(鸭子类型) Duck Typing 概念: 如果某个东西长得像鸭子,像鸭子一样游泳,像鸭子一样嘎嘎叫,那它就可以被看成是一只鸭子。 // 我们定义了一个接口 Pe 阅读全文
posted @ 2021-02-20 17:40 `Duet` 阅读(93) 评论(0) 推荐(0)
摘要:Array 和 Tuple Typescript 文档地址:Array 和 Tuple //最简单的方法是使用「类型 + 方括号」来表示数组: let arrOfNumbers: number[] = [1, 2, 3, 4] //数组的项中不允许出现其他的类型: //数组的一些方法的参数也会根据数 阅读全文
posted @ 2021-02-20 17:37 `Duet` 阅读(85) 评论(0) 推荐(0)
摘要:原始数据类型 Typescript 文档地址:Basic Types Javascript 类型分类: 原始数据类型 - primitive values: Boolean Null Undefined Number BigInt String Symbol let isDone: boolean 阅读全文
posted @ 2021-02-20 16:21 `Duet` 阅读(64) 评论(0) 推荐(0)
摘要:安装 Typescript Typescript 官网地址: https://www.typescriptlang.org/zh/ 使用 nvm 来管理 node 版本: https://github.com/nvm-sh/nvm 安装 Typescript: npm install -g type 阅读全文
posted @ 2021-02-20 12:16 `Duet` 阅读(128) 评论(0) 推荐(0)