K60至尊版狂暴引擎2.0加持:超177萬跑分斬獲性能第一
Redmi的后性能時代戰略發布會今天下午如期舉辦,在本次發布會上,Redmi公布了多項關于和聯發科的深度合作,以及新機K60 Ultra在軟件和硬件方面的特性,例如:“K60 至尊版,雙芯旗艦
父組件中有一個表單日期組件,子組件是一個彈層(彈層中有日期組件,默認值取父組件選中的日期),父組件更改日期范圍后,子組件打開默認日期也需要更新。如下:
// 父組件<template> <div> <date-span style="flex-grow: 1" ref="dateSpanE" :noCache="true" :startDate="startDate" :endDate="endDate" type="weekrange" @change="changeDate"></date-span> <!-- 子彈層組件 --> <ActiveTakeEffect ref="activeModal" :timeRange="makeActiveTime" /> </div></template><script>import DateSpan from '@/components/DateSpanE'export default { components: { DateSpan }, // ... data: () => { return { makeActiveTime: { startDate: '', endDate: '' }, } }, computed: { startDate() { return this.makeActiveTime.startDate }, endDate() { return this.makeActiveTime.endDate } }, methods: { // 父組件表單日期修改時更新了傳入的日期 changeDate(dateInfo) { const { start: startDate, end: endDate } = dateInfo this.makeActiveTime = { startDate, endDate } } }}</script>
// 子組件<template> <Modal v-model="showModal" width="680" title="XXX" :mask-closable="false" @on-visible-change="visibleChange" :loading="loading"> <div class="single-effect-modal"> <div class="form-wrapper"> <date-span style="flex-grow: 1" ref="dateSpanE" :noCache="true" :startDate="startDate" :endDate="endDate" type="weekrange" @change="changeDate"></date-span> </div> </div> </Modal></template><script>import Api from '@/api_axios'import DateSpan from '@/components/DateSpanE'import { formatDate } from '@/common/util'import moment from 'moment'export default { components: { DateSpan }, props: { // 定義父組件傳入的prop timeRange: { type: Object, default: () => { return { startDate: new Date(), endDate: moment().add(17, 'w').toDate() } } } }, data() { return { loading: true, showModal: false, // data中定義子組件日期范圍組件所需的展示數據,默認取props中定義的值 timeRangeFromProps: this.timeRange } }, computed: { startDate() { return this.timeRangeFromProps.startDate }, endDate() { return this.timeRangeFromProps.endDate } }, watch: { // 監聽傳入的props值,props值更改時更新子組件數據 // 若無此監聽,父組件修改日期后,子組件的日期范圍得不到更新 timeRange() { this.timeRangeFromProps = this.timeRange } }, methods: { changeDate(dateInfo) { const { start: startDate, end: endDate } = dateInfo this.timeRangeFromProps = { startDate, endDate } }, toggle(isShow) { this.showModal = isShow }, // ... }}</script><style lang="less">.single-effect-modal { .form-wrapper { min-height: 100px; } .item-label { min-width: 60px; }}</style>
<ActiveTakeEffect ref="activeModal" :timeRange="makeActiveTime" /><script>this.$refs.activeModal.timeRangeFromProps // timeRangeFromProps是子組件中的屬性this.$refs.activeModal.toggle(true) // toggle是子組件中的方法名</script>
// 子組件<script>this.$parent.makeActiveTime // makeActiveTime是父組件中的屬性this.$parent.changeDate({startDate:xxx, endDate: xxx}) // changeDate是父組件中的方法名</script>
// 父組件,忽略其他項<date-span @conditionChange="conditionChange"></date-span><scipt>// ...methods: { conditionChange(controlName) { // ... }}// ...</script><script>// 子組件中調用this.$emit('conditionChange', 'dateSpan')</script>
// itemList就是來自treeSelectMixin中定義的數據<SwitchButton :itemList="itemList" @change="toggleSelectAll"></SwitchButton><script>import mixin from './treeSelectMixin'export default { mixins: [mixin], components: { Treeselect, SwitchButton }, // ...}</script>
// 同一個.vue文件中可以出現以下兩個style標簽<style lang="less"></style>// 當 `<style>` 標簽有 `scoped` 屬性時,它的 CSS 只作用于當前組件中的元素。<style lang="less" scoped></style>
以上就是入門時困擾較多的地方~祝換乘順利
作者:京東零售 黃曉麗
來源:京東云開發者社區 轉載請注明來源
本文鏈接:http://www.www897cc.com/showinfo-26-15225-0.htmlReact技術棧支援Vue項目,你需要提前了解的
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 別再學那些落后的 Web 開發技術了 !