您的位置:首页 > 游戏 > 游戏 > 百度推广一个月多少钱_网站下载的文件在哪里_外贸推广是做什么的_一个公司可以做几个百度推广

百度推广一个月多少钱_网站下载的文件在哪里_外贸推广是做什么的_一个公司可以做几个百度推广

2024/12/23 1:08:28 来源:https://blog.csdn.net/lotpyve/article/details/144028905  浏览:    关键词:百度推广一个月多少钱_网站下载的文件在哪里_外贸推广是做什么的_一个公司可以做几个百度推广
百度推广一个月多少钱_网站下载的文件在哪里_外贸推广是做什么的_一个公司可以做几个百度推广

今天在从vue2升级vue3的时候,遇到了这个问题,下面说一下这些怎么表示

vue2中的this.$el其实就是获取当前的组件节点,让我们来看一下代码和输出

在vue2中我们有组件:

<template><div class="aaa"><div class="block"><span class="demonstration">完整功能</span></div></div>
</template><script>
export default {name: '',data() {return {}},mounted() {console.log(this.$el, 'this.$el')},
}
</script><style lang="" scoped></style>

看一下输出是什么

通过 class="aaa" 可以看见输出就是当前模板标签内的根标签

所以在 vue3 中我们可以通过在 ref 的方式获取到根标签,代码如下

<script setup lang="ts">
import { ref } from 'vue'
const ownInstance = ref(null)console.log(ownInstance, 'ownInstance')
</script>
<template><div ref="ownInstance" class="aaa"><div class="block"><span class="demonstration">完整功能</span></div></div>
</template><style lang="less" scoped></style>

之后我们在看一下 vue2 里面的 this.$parent 输出的是什么

输出的是它的父组件,我们在vue3中获取父组件是这样的

import { getCurrentInstance } from 'vue'const instance = getCurrentInstance()console.log(instance.parent)

让我们来看一下输出是什么样子的

这里要注意的是,当需要使用父组件里面的一些方法或者数据时,需要在 exposed 里面使用

然后在说一下 this.$children,在vue2中,this.$children 就是获取子组件的实例,vue3 我们可以通过 ref 获取

<template><ChildComponent ref="childRef" />
</template><script lang="ts">
import { ref, onMounted } from 'vue'
import ChildComponent from './ChildComponent.vue'
const childRef = ref(null)onMounted(() => {// 访问子组件实例console.log(childRef.value)
})
</script>

但是有个地方我们注意一下:

当在 vue2 根据 this.$children 获取到的子组件是一个数组,而在 vue3 中通过 ref 获取到的子组件,如果只有一个 ref=xxx,获取到的 xxx 就是一个子组件实例,当有多个 ref=xxx 的时候,获取到的才是数组,下面来看一下详细的

vue2只有一个子组件时:

<template><div class="aaa"><div class="block"><span class="demonstration">完整功能</span><testxxx></testxxx><!-- <testxxx v-for="i in 3" :key="i"></testxxx> --></div></div>
</template><script>
import testxxx from './testxxx.vue'
export default {name: '',components: { testxxx },data() {return {}},mounted() {console.log(this.$children, 'this.$children')},
}
</script><style lang="" scoped></style>

vue2有多个子组件时:

vue3只有一个子组件时:

<script setup lang="ts">
import { ref, onMounted } from 'vue'
import trimxxx from './trimxxx.vue'
const childRef = ref(null)onMounted(() => {// 访问子组件实例console.log(childRef.value)
})
</script><template><!-- <trimxxx ref="childRef" /> --><trimxxx ref="childRef" v-for="i in 3" :key="i" />
</template><style scoped></style>

vue3有多个子组件时:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com