您身边的网站建设专家
成功案例

【建站服务】枝江网页设计-高端网站设计公司-域名申请

日期: 2022-09-21 03:41:24 浏览数:3


上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


枝江网页设计-高端网站设计公司

网站建设.png

export default {
  beforeMount() {
    console.log('V2 beforeMount!')
  },
  mounted() {
    console.log('V2 mounted!')
  }
};

在 Vue3 组合 API 中实现生命周期钩子函数可以在 setup() 函数中使用带有 on 前缀的函数:

实例

import { onBeforeMount, onMounted } from 'vue';
export default {
  setup() {
    onBeforeMount(() => {
      console.log('V3 beforeMount!');
    })
    onMounted(() => {
      console.log('V3 mounted!');
    })
  }
};

下表为 Options API 和 Composition API 之间的映射,包含如何在 setup () 内部调用生命周期钩子:

Vue2 Options-based APIVue Composition API
beforeCreatesetup()
createdsetup()
beforeMountonBeforeMount
mountedonMounted
beforeUpdateonBeforeUpdate
updatedonUpdated
beforeDestroyonBeforeUnmount
destroyedonUnmounted
errorCapturedonErrorCaptured

因为 setup 是围绕 beforeCreate 和 created 生命周期钩子运行的,所以不需要显式地定义它们。换句话说,在这些钩子中编写的任何代码都应该直接在 setup 函数中编写。

这些函数接受一个回调函数,当钩子被组件调用时将会被执行:

实例

setup() {
...
    // 组件被挂载时,我们用 onMounted 钩子记录一些消息
    onMounted(() => console.log('component mounted!'));
...
}

模板引用

在使用组合式 API 时,响应式引用和模板引用的概念是统一的。

为了获得对模板内元素或组件实例的引用,我们可以像往常一样声明 ref 并从 setup() 返回:

实例

<template>
  <div ref="root">This is a root element</div>
</template>

<script>
  import { ref, onMounted } from 'vue'

  export default {
    setup() {
      const root = ref(null)

      onMounted(() => {



<script>

  import { ref, onMounted } from 'vue'


  export default {

    setup() {

      const root = ref(null)


      onMounted(() => {

        // DOM 元素将在初始渲染后分配给 ref

        console.log(root.value) // <div>This is a root element</div>

      })


      return {

        root

      }

    }

  }

</script>

以上实例中我们在渲染上下文中暴露 root,并通过 ref="root",将其绑定到 div 作为其 ref。


作为模板使用的 ref 的行为与任何其他 ref 一样:它们是响应式的,可以传递到 (或从中返回) 复合函数中。


v-for 中的用法

组合式 API 模板引用在 v-for 内部使用时没有特殊处理。相反,请使用函数引用执行自定义处理:


实例

<template>

  <div v-for="(item, i) in list" :ref="el => { if (el) divs[i] = el }">

    {{ item }}

  </div>

</template>


<script>

  import { ref, reactive, onBeforeUpdate } from 'vue'


  export default {

    setup() {

      const list = reactive([1, 2, 3])

      const divs = ref([])


      // 确保在每次更新之前重置ref

      onBeforeUpdate(() => {

        divs.value = []

      })


      return {

        list,

        divs

      }

    }

  }

</script>

侦听模板引用

侦听模板引用的变更可以替代前面例子中演示使用的生命周期钩子。


但与生命周期钩子的一个关键区别是,watch() 和 watchEffect() 在 DOM 挂载或更新之前运行会有副作用,所以当侦听器运行时,模板引用还未被更新。


实例

<template>

  <div ref="root">This is a root element</div>

</template>


<script>

  import { ref, watchEffect } from 'vue'


  export default {

    setup() {

      const root = ref(null)


      watchEffect(() => {

        // 这个副作用在 DOM 更新之前运行,因此,模板引用还没有持有对元素的引用。

        console.log(root.value) // => null

      })


      return {

        root

      }

    }

  }

</script>

因此,使用模板引用的侦听器应该用 flush: 'post' 选项来定义,这


枝江网页设计-高端网站设计公司


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


全国咨询热线:400-111-6878

地址:全国各地都有驻点商务

Copyright © 2021 通陆科技

网站建设上往建站