vue中使用typescript遇到的坑
1、在Vue原型或window上添加属性declare module 'vue/types/vue' {interface Vue {int: any}}declare global {interface Window {globalConfig: any}}2、调用$refs上的某个方法public $refs!: {...
·
1、在Vue原型或window上添加属性
declare module 'vue/types/vue' {
interface Vue {
int: any
}
}
declare global {
interface Window {
globalConfig: any
}
}
2、调用$refs上的某个方法
public $refs!: {
childRight: HTMLFormElement
childLeft: HTMLFormElement
}
3、动态设置style要加类型断言
document.getElementById('pre-start')!.style.display = 'none'
4、使用this.$route和this.$router
import VueRouter, {Route} from 'vue-router';
declare module 'vue/types/vue' {
interface Vue {
$router: VueRouter
$route: Route
}
}
5、全局注册组件
声明name
@Component({
name: 'pie',
components: {}
})
将componentConfig.default.name改为componentConfig.default.options.name
import Vue from 'vue'
// 找到路径
const requireComponent = require.context('./', true, /.vue$/)
// 找到组件文件夹下以.vue命名的文件,如果文件名存在,那么取组件中的name作为注册的组件名
requireComponent.keys().forEach((filePath) => {
// 组件实例
const componentConfig = requireComponent(filePath)
const componentName = componentConfig.default.options.name
Vue.component(componentName, componentConfig.default || componentConfig)
})
更多推荐
已为社区贡献3条内容
所有评论(0)