• vue3项目开发技术点总结


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

    1.1 定义全局变量

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

    1. // 添加属性aaa
    2. import { createApp } from 'vue'
    3. import App from './App.vue'
    4. import router from './router'
    5. import store from './store'
    6. let app = createApp(App)
    7. app.config.globalProperties.aaa = 123
    8. app.use(store).use(router).mount('#app')

    1.2 组件中使用全局变量

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

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

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

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

    2.获取一个组件的对象

    2.1 在ts文件中

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

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

    1. import { ref } from 'vue'
    2. import child from '@/components/child'
    3. export function useChild(newCb?: CallbackFn, editCb?: CallbackFn) {
    4. const childRef = ref<InstanceType<typeof child>>()
    5. childRef.value.dialogVisible = true
    6. }

    2.2 在vue组件中

    1. <template>
    2. <child ref=childRef>child>
    3. template>
    4. <script lang=ts>
    5. import { ref } from 'vue'
    6. import child from '@/components/child'
    7. export default defineComponent({
    8. name: 'user',
    9. components: { child },
    10. setup() {
    11. function useChild(newCb?: CallbackFn, editCb?: CallbackFn) {
    12. const childRef = ref<InstanceType<typeof child>>()
    13. childRef.value.dialogVisible = true
    14. }
    15. }
    16. })
    17. script>

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

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

  • 相关阅读:
    设置内外网同时使用,重新配置路由
    cocoscreator播放Spine动画
    viewport 视口
    Spark大数据应用实战
    [附源码]计算机毕业设计springboot网上电影购票系统
    5分钟学会Tomcat
    李宏毅老师《机器学习》课程笔记-4.1 Self-attention
    单例设计模式
    1.1 print输出语句(Python)
    Golang 字符串
  • 原文地址:https://blog.csdn.net/ICanWin_lll/article/details/126751101