vue.js父組件使用外部對象的方法示例
最近在碰到有同學(xué)問我,vue父組件怎么使用外部對象,具體例子如下:
有組件a:
<div @click="onClick">component a</div>
// componet a ... methods: { onClick(evt) { // doSomething 這里只能拿到 mouseEvent this.outsideClickHandler(evt); // 調(diào)用外部處理函數(shù) } } ...
有組件B,引用組件a,并傳入outsideClickHandler方法:
<v-componetA :outside-click-handler="onClick">componentB</v-componetA>
對以上這種封裝是組件庫中再常見不過的封裝了,實際使用中,有時候會需在component B傳入component A的outsideClickHandler方法中使用component B中的數(shù)據(jù)對象,而component的代碼又不能更改,這時候怎么辦呢?
其實解決方案也是非常簡單,但是有時候我們會"執(zhí)迷不悟"。
廢話不說,上代碼!
// componet b ... data() { a: {} // 數(shù)據(jù) }, methods: { onClick(evt) { // 關(guān)鍵在于返回一個函數(shù)哦 return (evt) => { // 這里也可以直接閉包使用 console.log(this.a); } } } ...
總之,對于vue函數(shù)來說,當(dāng)無法直接傳入?yún)?shù)的時候,可以考慮閉包實現(xiàn),本文所說的也只是一個簡單例子,js的函數(shù)作為一等公民還有很多有趣的應(yīng)用。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- Vue項目中引入外部文件的方法(css、js、less)
- vue.js引入外部CSS樣式和外部JS文件的方法
- vue項目中在外部js文件中直接調(diào)用vue實例的方法比如說this
- webpack+vue-cli項目中引入外部非模塊格式j(luò)s的方法
- vue項目中api接口管理總結(jié)
- 詳解vue項目中調(diào)用百度地圖API使用方法
- vue實現(xiàn)的請求服務(wù)器端API接口示例
- 深入理解Vue官方文檔梳理之全局API
- 詳解Vue2 SSR 緩存 Api 數(shù)據(jù)
- Vue 2.x教程之基礎(chǔ)API
- vue 使用外部JS與調(diào)用原生API操作示例
相關(guān)文章
Vue3動態(tài)路由(響應(yīng)式帶參數(shù)的路由)變更頁面不刷新的問題解決辦法
問題來源是因為我的開源項目Maple-Boot項目的網(wǎng)站前端,因為項目主打的內(nèi)容發(fā)布展示,所以其中的內(nèi)容列表頁會根據(jù)不同的菜單進行渲染不同的路由,本文降介紹Vue3動態(tài)路由變更頁面不刷新的問題解決辦法,需要的朋友可以參考下2024-07-07iview table render集成switch開關(guān)的實例
下面小編就為大家分享一篇iview table render集成switch開關(guān)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03Vue項目三級聯(lián)動路由跳轉(zhuǎn)與傳參的思路詳解
這篇文章主要介紹了Vue項目三級聯(lián)動的路由跳轉(zhuǎn)與傳參的思路詳解,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-08-08