vue3+ts+element-plus

1.element-plus中form表单的ref不能跟ts定义的一个变量名一致,不然导致input无法输入
vue3+ts+element-plus_第1张图片
2. element-plus的rules trigger的blur和change一起写方式改变了在这里插入图片描述
3. 监听watch方式修改在这里插入图片描述
4.缓存处理
vue3+ts+element-plus_第2张图片
5.路由跳转
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6.组件工程化
vue3+ts+element-plus_第3张图片
components/index.ts


const requireComponent = require.context('./', true, /\.vue$/)
const components:any = []

requireComponent.keys().map(file => {
  components.push(requireComponent(file).default)
})

const install = function (Vue:any) {
  components.map((component:any) => {
    Vue.component(component.name, component)
  })
}

if (typeof window !== 'undefined' && window.Vue) {
  install(window.Vue)
}
const CSUI = {
  install,
  ...components
}
export default CSUI

因为会报window错误,所以要在shims-vue.d.ts里添加如下代码

declare interface Window {
  Vue: any
}

main.ts

import CSUI from '@/components/index.ts'
createApp(App).use(store).use(router).use(elementPlus, { locale }).use(CSUI).mount('#app')

7.父子组件通讯
父传子
vue3+ts+element-plus_第4张图片
vue3+ts+element-plus_第5张图片
子传父
vue3+ts+element-plus_第6张图片
vue3+ts+element-plus_第7张图片
8.接口代理,实现调用接口
request/index.ts

import axios from 'axios'

const service = axios.create({
    baseURL: '/api',
    timeout: 10000
})

service.interceptors.request.use(function(config:any):any {
    config.headers.Authorization = `Bearer 05f894b3-144f-48ea-bcc5-328ae49d7bf8`
    return config
})

service.interceptors.response.use(function(res:any):any {
    return res.data
})

export default service

api/index.ts

export * from './role/index'

api/role/index.ts

import http from '@/request/index'

export function getCode(params:any = {}) {
    return http.get('/code', { params })
}

代理

module.exports = {
    devServer: {
        host: '127.0.0.1',
        port: 80,
        proxy: {
            '^/api': {
                target: '',
                secure: true,
                changeOrigin: true,
                pathRewrite: {
                    '^/api': ''
                }
            }
        }
    }
}

vue3+ts+element-plus_第8张图片
9.table组件的封装
父组件






TableList组件






vue3+ts+element-plus_第9张图片
10.引入图表echarts,后续改为组件
main.ts

import * as echarts from 'echarts'
const app = createApp(App)
app.config.globalProperties.$echarts = echarts

home.vue





echatInit.vue






vue3+ts+element-plus_第10张图片

你可能感兴趣的:(vue3)