vue2的知识点,更多前端知识在主页,还有其他知识会持续更新

会在实例初始化完成,props解析完成之后,data()和computed等选项处理之前立即调用
场景: 网络请求, 注册全局事件
这个钩子被调用时,以下内容已完成设置:响应式数据,计算属性,方法和侦听器,
但是此时挂载阶段未开始,因此$el属性不可用

这个钩子被调用时,组件已经完成了其相应式状态的设置,但还没有创建dom节点,它即将首次执行dom渲染过程
场景:预处理data,不会触发updata钩子函数

场景:挂载后真实DOM





在实例销毁之前被调用。在这个阶段,实例仍然完全可用,可以访问到所有数据和方法。

在实例销毁后被调用。此时,实例中的所有东西都已被解绑定,事件监听器已被移除,所有子实例也已被销毁。

动态组件在 Vue.js 中是一种非常有用的功能,它允许你根据不同的条件渲染不同的组件。Vue 提供了多种方式来实现动态组件,主要包括以下几种方法:
元素Vue 中的 元素可以动态地绑定到不同的组件上,通过一个属性来指定当前需要渲染的组件。
- <template>
- <div>
- <component :is="currentComponent"></component>
- <button @click="toggleComponent">Toggle Component</button>
- </div>
- </template>
-
- <script>
- import ComponentA from './ComponentA.vue';
- import ComponentB from './ComponentB.vue';
-
- export default {
- data() {
- return {
- currentComponent: 'ComponentA'
- };
- },
- methods: {
- toggleComponent() {
- this.currentComponent = this.currentComponent === 'ComponentA' ? 'ComponentB' : 'ComponentA';
- }
- },
- components: {
- ComponentA,
- ComponentB
- }
- }
- </script>
v-if 和 v-else通过 v-if 和 v-else 指令,你可以根据条件切换不同的组件。
- <template>
- <div>
- <ComponentA v-if="isComponentAVisible" />
- <ComponentB v-else />
- <button @click="toggleComponent">Toggle Component</button>
- </div>
- </template>
-
- <script>
- import ComponentA from './ComponentA.vue';
- import ComponentB from './ComponentB.vue';
-
- export default {
- data() {
- return {
- isComponentAVisible: true
- };
- },
- methods: {
- toggleComponent() {
- this.isComponentAVisible = !this.isComponentAVisible;
- }
- },
- components: {
- ComponentA,
- ComponentB
- }
- }
- </script>
:is 属性你也可以在动态组件上直接使用 :is 属性来动态绑定组件名称。
- <template>
- <div>
- <component :is="currentComponent"></component>
- <button @click="toggleComponent">Toggle Component</button>
- </div>
- </template>
-
- <script>
- import ComponentA from './ComponentA.vue';
- import ComponentB from './ComponentB.vue';
-
- export default {
- data() {
- return {
- currentComponent: ComponentA
- };
- },
- methods: {
- toggleComponent() {
- this.currentComponent = this.currentComponent === ComponentA ? ComponentB : ComponentA;
- }
- },
- components: {
- ComponentA,
- ComponentB
- }
- }
- </script>