真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Vue3中的setup與自定義指令如何使用

本篇內(nèi)容主要講解“Vue3中的setup與自定義指令如何使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Vue3中的setup與自定義指令如何使用”吧!

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),志丹企業(yè)網(wǎng)站建設(shè),志丹品牌網(wǎng)站建設(shè),網(wǎng)站定制,志丹網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,志丹網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

setup語法糖

最大好處就是所有聲明部分皆可直接使用,無需return出去

注意:部分功能還不完善,如:name、render還需要單獨加入script標(biāo)簽按compositionAPI方式編寫

// setup 下還可以附加

defineProps defineEmits與組件應(yīng)用

// 子組件

 

import { useSlots, useAttrs } from 'vue';
 
const slots = useSlots()
const attrs = useAttrs()
const props = defineProps({
  msg: String
})
const emit = defineEmits(['change'])
console.log(slots, attrs)
const chickMe = ()=>{
  emit('change','abc')
}
 

 
// 父組件

    
  
  import HelloWorld from '../components/HelloWorld.vue'; import { ref ,reactive,toRefs } from 'vue'  const obj = reactive({       id: 0,       text: '小紅'     })  const changeP=(e)=>{       console.log(e)     }   、

defineExpose與組件應(yīng)用

// 子組件

 

 
const testPose =()=>{
  console.log('子組件暴露方法')
}
defineExpose({
  testPose
})

 
// 父組件


import HelloWorld from '../components/HelloWorld.vue';
import { ref } from 'vue'
// setup函數(shù)的話可以從context上查找
const helloSon = ref(null);
const testEpose = () => {
  helloSon.value.testPose();
}

自定義指令相關(guān)

  • created:在綁定元素的 attribute 或事件監(jiān)聽器被應(yīng)用之前調(diào)用。在指令需要附加在普通的 v-on 事件監(jiān)聽器調(diào)用前的事件監(jiān)聽器中時,這很有用。

  • beforeMount:當(dāng)指令第一次綁定到元素并且在掛載父組件之前調(diào)用。

  • mounted:在綁定元素的父組件被掛載后調(diào)用,大部分自定義指令都寫在這里。

  • beforeUpdate:在更新包含組件的 VNode 之前調(diào)用。

  • updated:在包含組件的 VNode 及其子組件的 VNode 更新后調(diào)用。

  • beforeUnmount:在卸載綁定元素的父組件之前調(diào)用

  • unmounted:當(dāng)指令與元素解除綁定且父組件已卸載時,只調(diào)用一次。

import { createApp } from 'vue';
const Test = createApp();
Test.directive('my-directive', {
    // 在綁定元素的 attribute 前
    // 或事件監(jiān)聽器應(yīng)用前調(diào)用
    created(el, binding, vnode, prevVnode) {
        // 下面會介紹各個參數(shù)的細(xì)節(jié)
        console.log('創(chuàng)建了')
    },
    // 在元素被插入到 DOM 前調(diào)用
    beforeMount(el, binding, vnode, prevVnode) { },
    // 在綁定元素的父組件
    // 及他自己的所有子節(jié)點都掛載完成后調(diào)用
    mounted(el, binding, vnode, prevVnode) { },
    // 綁定元素的父組件更新前調(diào)用
    beforeUpdate(el, binding, vnode, prevVnode) { },
    // 在綁定元素的父組件
    // 及他自己的所有子節(jié)點都更新后調(diào)用
    updated(el, binding, vnode, prevVnode) { },
    // 綁定元素的父組件卸載前調(diào)用
    beforeUnmount(el, binding, vnode, prevVnode) { },
    // 綁定元素的父組件卸載后調(diào)用
    unmounted(el, binding, vnode, prevVnode) { }
})
 
export default Test.directive('my-directive');
  • el:指令綁定到的元素。這可以用于直接操作 DOM。

  • binding:一個對象,包含以下屬性。

    • value:傳遞給指令的值。例如在 v-my-directive="1 + 1" 中,值是 2

    • oldValue:之前的值,僅在 beforeUpdateupdated 中可用。無論值是否更改,它都可用。

    • arg:傳遞給指令的參數(shù) (如果有的話)。例如在 v-my-directive:foo 中,參數(shù)是 "foo"

    • modifiers:一個包含修飾符的對象 (如果有的話)。例如在 v-my-directive.foo.bar 中,修飾符對象是 { foo: true, bar: true }。

    • instance:使用該指令的組件實例。dir:指令的定義對象。

  • vnode:代表綁定元素的底層 VNode。

  • prevNode:之前的渲染中代表指令所綁定元素的 VNode。僅在 beforeUpdateupdated 鉤子中可用。

應(yīng)用


//setup 外部調(diào)用

//或者 setup內(nèi)部

import vTest from './TestDirective'

對象字面量

  app.directive('demo', (el, binding) => {   console.log(binding.value.color) // => "white"   console.log(binding.value.text) // => "hello!" })

到此,相信大家對“Vue3中的setup與自定義指令如何使用”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


分享標(biāo)題:Vue3中的setup與自定義指令如何使用
網(wǎng)站URL:http://weahome.cn/article/jppsdh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部