defineComponent的作用

vue3.0中 defineComponen的作用
vue3中,新增了 defineComponent ,它并没有实现任何的逻辑,只是把接收的 Object 直接返回,它的存在是完全让传入的整个对象获得对应的类型,它的存在就是完全为了服务 TypeScript 而存在的。

vite&vue3中使用批量导入 import.meta.glob import.meta.globEager

const modulesFiles = import.meta.globEager('./modules/*.ts')
 
const modules = Object.keys(modulesFiles).reduce(
  (modules: { [key: string]: any }, path: string) => {
    const moduleName = path.replace(/^\.\/modules\/(.*)\.\w+$/, '$1')
    modules[moduleName] = modulesFiles[path]?.default
    return modules
  },
  {}
)
export default modules

RouteRecordRaw

基础路由里面增加开发者自定义属性 router.ts的RouteRecordRaw类型校验
为了规范化typescript开发,增加路由对象类型限制,好处:允许在基础路由里面增加开发者自定义属性。

import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'
 
const routes: Array<RouteRecordRaw> = [
  { path: '/', component: () => import('../views/Home/index.vue') },
  { path: '/video/:id', component: () => import('../views/Video/index.vue') }
]
 
const router = createRouter({
  history: createWebHashHistory(),
  routes
})
export default router
 

类型声明 reactive

export default  interface Product {
    name:String,
    price:Number,
    address:String
}



import  Product from '@/interface/Product' 
import {reactive} from 'vue'
const product = reactive({name:'xiaomi 11',price:5999,address:'北京'}) as Product
       
return {fatherData,info,product}
分页查询 字段属性类型验证
export default  interface queryType{
    page: Number,
    size: Number,
    name: String,
    age:  Number
}
import queryType from '../interface/Home'


    data() {
        return {
            query:{
                page:0,
                size:10,
                name:'测试',
                age: 2
            } as queryType
        }
    },
Logo

前往低代码交流专区

更多推荐