利用Object.assign實現數據合並
1 <template> 2 <view><button type="default" @click="initData">點擊初始化數據</button></view> 3 </template> 4 5 <script> 6 export default { 7 data() { 8 return { 9 hello: 0, 10 show1: false, 11 selectMenu2: [] 12 }; 13 }, 14 onLoad() { 15 this.setData(); 16 }, 17 methods: { 18 // 模擬修改數據 19 setData() { 20 this.hello = 'okok'; 21 this.show1 = true; 22 this.selectMenu2 = ['你好', '世界']; 23 }, 24 // 初始化數據 25 initData() { 26 // 把this對象放入target,最后再把初始化屬性拷貝進來(source)進行合並就可以了 27 Object.assign(this, { hello: 0, show1: false, selectMenu2: [] }); 28 console.log('這里都可以取到值:', this, this._data); 29 } 30 } 31 }; 32 </script> 33 34 <style></style>
表單域(Form)如何置空?
1 <template> 2 <view> 3 <demo-block title="clear-form" padding> 4 <i-cell title="清空表單"></i-cell> 5 <form @submit="formSubmit"> 6 <input type="number" v-model="uphone" name="uphone" class="feedback" value="" placeholder="請輸入你的手機號碼" maxlength="11" /> 7 <view class="sunui-border-b"></view> 8 <textarea value="" v-model="feedback" name="feedback" placeholder="請輸入反饋信息..." class="feedback" /> 9 <button form-type="submit" class="submit-btn sunui-radius10" hover-class="sunui-hover">提交信息</button> 10 </form> 11 </demo-block> 12 </view> 13 </template> 14 15 <script> 16 export default { 17 data() { 18 return { 19 uphone: '', 20 feedback: '' 21 }; 22 }, 23 methods: { 24 formSubmit(e) { 25 let val = e.detail.value; 26 27 console.log(val); 28 29 // 實現表單/數據初始化(影響用戶體驗,無需v-modal) - 第一種方式 30 // uni.redirectTo({ 31 // url: '/pages/form/check' 32 // }); 33 34 // 實現表單初始化(利用v-model) - 第二種方式 35 Object.assign(this._data, { uphone: '', feedback: '' }); 36 } 37 } 38 }; 39 40 </script> 41 42 <style> 43 .feedback { 44 background-color: #fff; 45 padding: 20rpx; 46 width: 650rpx; 47 /* width: ; */ 48 } 49 .submit-btn { 50 background-color: #4a8af4; 51 margin-top: 60rpx; 52 color: #fff; 53 } 54 </style>