vue3 元件通訊 vue router

2021-10-12 18:47:46 字數 1934 閱讀 7997

關於元件通訊

1.父子元件間傳值

props/$emit

$parent/ children

$ref

2.非父子元件傳值

事件匯流排

//原理就是建立乙個公共的js檔案,專門用來傳遞資訊

import vue from 'vue'

export default  new vue()

//在需要傳遞訊息的地方引入

import bus from './util/bus'

//傳遞訊息

bus.$emit('msg', val)

//接收訊息

bus.$on('msg',(val) => );

總結1】通過事件匯流排傳遞乙個資料

$attrs/$listener

$attrss解決多級元件間傳值的問題

//$atters 將父元件中的不包含props的屬性傳入子元件,通常配合interitattrs選項一起使用

//$listener監聽子元件中資料,傳遞給父元件

【總結2】$attrs/$listene

1.在最外層元件裡面統一傳值,或其他元件裡面傳值

2.在需要接收這個值的元件,接收資料。父元件繫結乙個屬性,就可以在這個元件裡面獲取到所有父元件傳遞過來的資料,可以通過this.$arrts

關於vue-router

1.什麼是路由

路由在我們單頁面應用中,是乙個很重要的角色,它是用來切換元件的。

單頁應用當中,沒有頁面這個概念,因為只有乙個頁面(index.html),通過切換主建來切換跳轉不同頁面的效果,也就是說vue-router是實現元件切換的。

2.路由的跳轉

2.1 router-link

示例**:home //to 要跳轉的路徑

2.2 程式設計式導航

不通過router-link調轉,通過事件的方式來跳轉(函式式)

示例**:this.$router.push()  //(是物件

2.3 如何傳遞引數

示例**1:this.$router.push(} )

示例**2:this.$router.push(} )  //動態路由傳參

注意 path和name進行搭配,name和params進行搭配

3.動態路由

商品詳情頁,通過id不同展示不一樣的頁面。

需要在url上面定義乙個引數,用這個引數來獲取id,根據id的不同,來請求不一樣的資料(也就是說定義乙個動態路由)

3.1配置動態路由

3.2獲取引數

示例**:}

4.巢狀路由

需要在乙個元件裡面顯示另外乙個元件

例如:布局,頭部和底部是預設的兩個元件,不同的是中間的部分

例如:在home.vue顯示子元件

1.想在**顯示?在**新增

2.定義子元件路由主鍵]}

5.導航守衛

**如下:

router.beforeeach((to,from,next) =>{

console.log(to.path) //輸出訪問的路由的訪問路徑

next()

Vue 3 元件註冊

上一節實驗中,我們大概了解了一下元件的基礎,這一節實驗我們要深入元件註冊。我們在註冊元件的時候,我們都會給元件起乙個名字,就好像我們人的名字一樣。需要注意的是,我們的元件名字是有一些規範的,一般這種單檔案元件,我們強烈推薦使用字母全小寫且必須包含乙個連字元,全部小寫字母,單詞使用中華線 隔開。例如我...

Vue3元件傳參

總結沒啥好說的,淦就完事了,按照自己的認知簡單的整理了一下vue3的元件傳參 如下 示例 子元件 click childemit 傳值給父元件button div template export default return script 父元件 my emit parentemit child d...

vue3 元件的v model實現

在vue2中,v model val 是 value val 和 input val event.target.value 的語法糖 vue2的自定義元件的v model input元件 父元件 子元件 特殊的元件,比如checkbox元件,通過model屬性指定prop引數和event事件 父元件...