<noframes id="bhrfl"><address id="bhrfl"></address>

    <address id="bhrfl"></address>

    <noframes id="bhrfl"><address id="bhrfl"><th id="bhrfl"></th></address>

    <form id="bhrfl"><th id="bhrfl"><progress id="bhrfl"></progress></th></form>

    <em id="bhrfl"><span id="bhrfl"></span></em>

    全部
    常見問題
    產品動態
    精選推薦

    vue3 常用的知識點匯總

    管理 管理 編輯 刪除

    setup:容許在script當中書寫組合式API 并且vue3的template不再要求唯一的根元素

    <script setup>

    const name = 'app';

    </script>

    組合式API的用法:

    可以直接在script標簽中定義變量或者函數,然后直接在template當中使用

    <template>

     {{message}}

     <button @click="logMessage">log</button>

    </template>

    <script setup>

    const message = 'this is message'

    const logMessage = () =>{

    console.log("logMessage")

    }

    </script>

    響應式變量reactive的使用:

    <template>

     <button @click="setCount">{{state.count}}</button>

    </template>

    <script setup>

    //導入函數

    import {reactive} from 'vue'

    //執行函數 傳入一個對象類型的參數

    const state = reactive({

    count:0

    })

    const setCount = () =>{

    state.count++

    }

    </script>

    響應式變量ref的使用:

    <template>

     <button @click="setCount">{{count}}</button>

    </template>

    <script setup>

    //導入函數

    import {ref} from 'vue'

    //執行函數 傳入一個對象類型或者簡單數據類型的參數

    const count= ref(0)

    const setCount = () =>{

    count.value++

    }

    </script>

    computed計算屬性

    <template>

     <div>

     原始響應式數據:{{list}}

     </div>

     <div>

     計算屬性數組{{computedList}}

     </div>

    </template>

    <script setup>

    //原始響應式

    import { ref } from 'vue'

    //導入computed

    import { computed } from 'vue'

    const list = ref([1,2,3,4,5,6,7,8])

    //執行計算函數

    const computedList = computed(()=>{

    return list.value.filter(item=>item>2)

    })

    setTimeout(()=>{

    list.value.push(9,10)

    },3000)

    </script>

    watch函數:偵聽一個或者多個數據的變化,數據變化時執行的函數。兩個額外的參數1.immediate (立即觸發) 2.deep(深度監聽)

    <template>

     <div>

     <button @click="setCount">+{{count}}</button>

     </div>

    </template>

    <script setup>

    import {ref,watch} from 'vue'

    const count = ref(0)

    const setCount = () => {

     count.value++

    }

    watch(count,(newVal,oldVal)=>{

    console.log('count變化了',newVal,oldVal);

    })

    </script>

    watch監聽對象數據的某一個屬性:

    <template>

     <div>

     <button @click="changeName">name:{{state.name}}</button>

     <button @click="changeAge">age:{{state.age}}</button>

     </div>

    </template>

    <script setup>

    import {ref,watch} from 'vue'

    const state = ref({

    name:'cc',

    age:18

    })

    const changeName = () => {

     state.value.name='aa'

    }

    const changeAge = ()=>{

    state.value.age=20

    }

    //當只有age屬性發生變化時才會觸發回調函數

    watch(

    () => state.value.age,

    () => {

    console.log('age變化了');

    }

    )

    </script>

    生命周期函數:

    cc6e220240729091448354.png

    父組件給子組件傳值:
    1.父組件給子組件綁定屬性
    2.子組件內部通過props選項接收

    父組件

    <template>

    <div class="fathher">

    <h2>父組件</h2>

    <!-- 傳入想要傳的值 message為固定的值,count為響應式的值-->

    <son :count="count" message="father message"></son>

    </div>

    </template>

    <script setup>

    //setup語法糖下局部組件無需注冊直接可以使用

    import Son from './son.vue'

    import {ref} from 'vue'

    const count = ref(100)

    setTimeout(()=>{

    count.value = 200

    },3000)

    </script>

    子組件:

    <template>

    <div class="son">

    <h3>子組件Son</h3>

    父組件傳入的數據:{{message}}-{{count}}

    </div>

    </template>


    <script setup>

    //用defineProps接收父組件傳的值

       const  props = defineProps({

    message:String,

    count:Number

    })

    console.log(props);

    </script>

    組合式API下的子傳父:
    1.父組件中給子組件標簽通過@綁定事件
    2.子組件內部通過$emit方法觸發事件

    父組件:

    <template>

    <div class="fathher">

    <h2>父組件</h2>

    <!-- 1.綁定事件 -->

    <son @get-message="getMessage"></son>

    </div>

    </template>

    <script setup>

    //setup語法糖下局部組件無需注冊直接可以使用

    import Son from './son.vue'

    const getMessage = (msg) => {

    console.log(msg)

    }

    </script>

    子組件:

    <template>

    <div class="son">

    <h3>子組件Son</h3>

    <button @click="sendMsg">觸發自定義事件</button>

    </div>

    </template>

    <script setup>

    //2.通過defineEmits() 定義事件

    const emit = defineEmits(['get-message'])

    const sendMsg = () =>{

    emit('get-message','this is son message')

    }

    </script>



    請登錄后查看

    小碼二開 最后編輯于2024-07-29 09:17:58

    快捷回復
    回復
    回復
    回復({{post_count}}) {{!is_user ? '我的回復' :'全部回復'}}
    排序 默認正序 回復倒序 點贊倒序

    {{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

    作者 管理員 企業

    {{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
    {{item.is_suggest == 1? '取消推薦': '推薦'}}
    沙發 板凳 地板 {{item.floor}}#
    {{item.user_info.title || '暫無簡介'}}
    附件

    {{itemf.name}}

    {{item.created_at}}  {{item.ip_address}}
    打賞
    已打賞¥{{item.reward_price}}
    {{item.like_count}}
    {{item.showReply ? '取消回復' : '回復'}}
    刪除
    回復
    回復

    {{itemc.user_info.nickname}}

    {{itemc.user_name}}

    回復 {{itemc.comment_user_info.nickname}}

    附件

    {{itemf.name}}

    {{itemc.created_at}}
    打賞
    已打賞¥{{itemc.reward_price}}
    {{itemc.like_count}}
    {{itemc.showReply ? '取消回復' : '回復'}}
    刪除
    回復
    回復
    查看更多
    打賞
    已打賞¥{{reward_price}}
    1749
    {{like_count}}
    {{collect_count}}
    添加回復 ({{post_count}})

    相關推薦

    快速安全登錄

    使用微信掃碼登錄
    {{item.label}} 加精
    {{item.label}} {{item.label}} 板塊推薦 常見問題 產品動態 精選推薦 首頁頭條 首頁動態 首頁推薦
    取 消 確 定
    回復
    回復
    問題:
    問題自動獲取的帖子內容,不準確時需要手動修改. [獲取答案]
    答案:
    提交
    bug 需求 取 消 確 定
    打賞金額
    當前余額:¥{{rewardUserInfo.reward_price}}
    {{item.price}}元
    請輸入 0.1-{{reward_max_price}} 范圍內的數值
    打賞成功
    ¥{{price}}
    完成 確認打賞

    微信登錄/注冊

    切換手機號登錄

    {{ bind_phone ? '綁定手機' : '手機登錄'}}

    {{codeText}}
    切換微信登錄/注冊
    暫不綁定
    亚洲欧美字幕
    CRMEB客服

    CRMEB咨詢熱線 咨詢熱線

    400-8888-794

    微信掃碼咨詢

    CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
    返回頂部 返回頂部
    CRMEB客服