Vue3+vite+Ts开荒日记

前言

上大学之前总想着学了计算机要写点程序,游戏,项目什么的,大一感觉过的充实但是不够精彩,暑假选择了vue3的学习,那么,就让他更精彩一点吧!

目标

  • [X] 自学基础的前端三大项,vue3和ts语法
  • [ ] 跟着尚硅谷视频写一个项目
  • [ ] 写一个自己的博客前端
  • [ ] 写一个前后端加密毕设

Ts

1. 类型声明

let a: string //变量a只能存储字符串
let b: number //变量a只能存储数值
let c: boolean //变量a只能存储布尔值
a = 'hello'
a = 100 //警告:不能将类型“number”分配给类型“string”
b = 666
b = '你好'//警告:不能将类型“string”分配给类型“number”
c = true
c = 666 //警告:不能将类型“number”分配给类型“boolean”
// 参数x必须是数字,参数y也必须是数字,函数返回值也必须是数字
function demo(x:number,y:number):number{
 return x + y
}
demo(100,200)
demo(100,'200') //警告:类型“string”的参数不能赋给类型“number”的参数
demo(100,200,300) //警告:应有 2 个参数,但获得 3 个
demo(100) //警告:应有 2 个参数,但获得 1 个

2. 类型推断

let d = -99 //TypeScript会推断出变量d的类型是数字
d = false //警告:不能将类型“boolean”分配给类型“number”

3. 类型总览

JavaScript 中的数据类型:

string 、 number 、 boolean 、 null 、 undefined 、 bigint 、 symbol 、 object

TypeScript 中的数据类型:

1. 以上所有
2. 四个新类型: void 、 never 、 unknown 、 any 、 enum 、 tuple
3. ⾃定义类型: type 、 interface

4. ⾃定义类型

// 性别的枚举
enum Gender {
 Male,
 Female
}
// ⾃定义⼀个年级类型(⾼⼀、⾼⼆、⾼三)
type Grade = 1 | 2 | 3
// ⾃定义⼀个学⽣类型
type Student = {
 name:string,
 age:number,
 gender:Gender,
 grade:Grade
}
// 定义两个学⽣变量:s1、s2
let s1:Student
let s2:Student
s1 = {name:'张三',age:18,gender:Gender.Male,grade:1}
s2 = {name:'李四',age:18,gender:Gender.Female,grade:2}

5.抽象类

class Person {
 name: string
 age: number
 constructor(name:string,age:number){
 this.name = name
 this.age = age
 }
}
const p1 = new Person('张三',18)
const p2 = new Person('李四',19)
console.log(p1)
console.log(p2)

//继承
// Person类
class Person { }
// Teacher类继承Person
class Teacher extends Person { }
// Student类继承Person
class Student extends Person { }
// Person实例
const p1 = new Person('周杰伦',38)
// Student实例
const s1 = new Student('张同学',18)
const s2 = new Student('李同学',20)
// Teacher实例
const t1 = new Teacher('刘⽼师',40)
const t2 = new Teacher('孙⽼师',50)

6. 接⼝

  1. 接⼝⽤于限制⼀个类中包含哪些属性和⽅法:
    // Person接⼝
    interface Person {
    // 属性声明
    name: string
    age: number
    // ⽅法声明
    speak():void
    }
    // Teacher实现Person接⼝
    class Teacher implements Person {
    name: string
    age: number
    // 构造器
    constructor(name: string,age: number){
    this.name = name
    this.age = age
    }
    // ⽅法
    speak(){
    console.log('你好!我是⽼师:',this.name)
    }
    }

    2.接⼝是可以重复声明的:

    // Person接⼝
    interface PersonInter {
    // 属性声明
    name: string
    age: number
    }
    // Person接⼝
    interface PersonInter {
    // ⽅法声明
    speak():void
    }
    // Person类继承PersonInter
    class Person implements PersonInter {
    name: string
    age: number
    // 构造器
    constructor(name: string,age: number){
    this.name = name
    this.age = age
    }
    // ⽅法
    speak(){
    console.log('你好!我是⽼师:',this.name)
    }
    }
  2. 【接⼝】与【⾃定义类型】的区别:
接⼝可以:
1. 当⾃定义类型去使⽤;
2. 可以限制类的结构;
⾃定义类型:
1. 仅仅就是⾃定义类型;
  1. 【接⼝】与【抽象类】的区别:
抽象类:
1. 可以有普通⽅法,也可以有抽象⽅法;
2. 使⽤ extends 关键字去继承抽象类;
接⼝中:
1. 只能有抽象⽅法;
2. 使⽤ implements 关键字去实现接⼝

Vue3基础

  • 看的是尚硅谷的markdown,总结在我的仓库

第一个项目—尚硅谷Vue项目实战硅谷甄选

(注:个人魔改版)

一.项目创建

  • 找个文件夹,创建项目,记得用vite

    npm create vite@latest my-vue-app –template vue

  • eslint,prettiter,styleLint,husky,commitLint,因为是自己一个人写,就没有安装

  • element-plus
    1.安装

    npm i element-plus @element-plus/icons-vue

    2.引用

    //main.ts
    import ElementPlus from 'element-plus'
    import 'element-plus/dist/index.css'
    app.use(ElementPlus);

    因为不需要国际化,就没有设置

    3.element网站
    https://element.eleme.cn/#/zh-CN

  • Svg
    1.优点:占内存小,远远优于img
    2.推荐svg网站,阿里巴巴
    3.配置

    //vite.config.ts
    import { defineConfig } from 'vite'
    import vue from '@vitejs/plugin-vue'
    import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
    import path from 'path'
    export default defineConfig({
    plugins: [vue(),
    createSvgIconsPlugin({
      iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/svg')],
      symbolId: 'icon-[dir]-[name]',
    })
    ]
    })
    //main.ts
    import 'virtual:svg-icons-register'

自定义插件注册svg全局

1.main.tx

import gloalComponent from './components'

app.use(gloalComponent)

2.components

一个文件夹Pagination,里面文件index.vue
新创一个文件 index.ts

import Svglcon from './Svglcon/index.vue'
import Pagination from './Pagination/index.vue'

const components:any = { Svglcon, Pagination };

export default {
    install(app:any) {
        // 注册全局组件
        Object.keys(components).forEach(key => {
        app.component(key, components[key]);
        });
    }
}

3.App.vue引用

直接引用即可

  
  
  //zs是我随便找了个svg瞎起的名字
心如草木,向阳而生
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇