vue3项目开发技术点总结

1.全局变量的定义和使用

1.1 定义全局变量

在main.js中,使用app.config.globalProperties定义:

//	添加属性aaa
	import { createApp } from 'vue'
	import App from './App.vue'
	import router from './router'
	import store from './store'
	let app = createApp(App)
	app.config.globalProperties.aaa = 123
	app.use(store).use(router).mount('#app')

1.2 组件中使用全局变量

 使用:getCurrentInstance().appContext.config.globalProperties 获取全局定义的变量

注意:只能在setup或者生命周期函数中使用

import { getCurrentInstance } from 'vue'
  export default {	
	setup() {
  // getCurrentInstance 意思是获取当前组件的上下文 只能在setup或者生命周期函数中使用
         getCurrentInstance().appContext.config.globalProperties.aaa
	}
}

参考:Vue3.0如何在setup中获取定义的全局方法_```木头人```的博客-CSDN博客

2.获取一个组件的对象

2.1 在ts文件中

通过 ref<InstanceType<typeof child>>() 获取对一个组件对象的ref类型对象

childRef.value的值包括在setup中返回的数据和prop传递过来的数据,等等...

import { ref } from 'vue'
import child from '@/components/child'

export function useChild(newCb?: CallbackFn, editCb?: CallbackFn) {
  const childRef = ref<InstanceType<typeof child>>()
  childRef.value.dialogVisible = true
}

2.2 在vue组件中

<template>
   <child ref=childRef></child>
</template>

<script lang=ts>
import { ref } from 'vue'
import child from '@/components/child'
export default defineComponent({
  name: 'user',
  components: { child },
  setup() {
    function useChild(newCb?: CallbackFn, editCb?: CallbackFn) {
      const childRef = ref<InstanceType<typeof child>>()
      childRef.value.dialogVisible = true
    }
  }
})
</script>

3.组件中导入的对象变成响应式

包裹在computed中,将返回的ref对象绑定到template中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值