vuejs組件內的props的屬性賦值問題?
問題描述
組件:<test :loading.sync="loading"></test>
Vue.component('test',{ template: '#testText', props: { loading: { type: Boolean, default: false} }, methods: {getData: function (data) { this.loading = false;//此句有錯誤,該如何更正} }});new Vue({el: '#indexBox',data: { loading : false},methods : {loadMore: function () { this.loading = true;} } });
我想在子組件里面變更loading的值回傳給父組件,請問該如何控制loading
問題解答
回答1:你用的是vue2吧,如果是vue2的話就應該用事件來把子組件的狀態傳給父組件,有兩種辦法,一種是在父組件中傳一個v-model='outerLoading',然后子組件里面
watch:{ outerLoading (v) {this.innerLoading = v }, innerLoading (v) {this.emit('input', v) }}
這樣outLoading就會響應innerLoading,實現雙向綁定的功能。還有一種做法和這個類似,就是把this.emit('input', v)換成this.emit('eventName', v),然后在父組件中@eventName='eventFunc', 再通過父組件中的eventFunc(v) { //code... }來響應子組件的狀態
相關文章:
1. html5 - 如何實現帶陰影的不規則容器?2. javascript - 循環嵌套多個promise應該如何實現?3. mysql優化 - 關于mysql分區4. css - 移動端字體設置問題5. objective-c - iOS開發支付寶和微信支付完成為什么跳轉到了之前開發的一個app?6. css3 - rem布局下,用戶瀏覽器的最小字號是12px怎么辦?7. vue.js - vue 打包后 nginx 服務端API請求跨域問題無法解決。8. 請教各位大佬,瀏覽器點 提交實例為什么沒有反應9. 前端 - IE9 css兼容問題10. javascript - ionic2 input autofocus 電腦成功,iOS手機鍵盤不彈出
