Home > Web Front-end > Vue.js > body text

Vue component practice: development of time selector component

王林
Release: 2023-11-24 09:29:11
Original
1569 people have browsed it

Vue component practice: development of time selector component

Vue component practice: time picker component development

Introduction:
The time picker is one of the common functions in many web applications. It allows users to Easily select date and time. Vue is a popular JavaScript framework that provides a rich set of tools and components to build interactive web applications. This article will teach you how to use Vue to develop a simple and practical time picker component and provide specific code examples.

1. Design the component structure
Before you start writing code, it is important to design the overall structure of the component. Considering that the time picker usually contains two parts: date selection and time selection, we can divide the component into two sub-components, one responsible for date selection and one responsible for time selection. The advantage of this is that it improves the reusability and flexibility of components.

2. Write the date selection component
First, let’s write the date selection component. Below is a simple date picker code example that contains only the necessary functionality.

<template>
  <div>
    <input type="date" v-model="selectedDate">
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedDate: null
    }
  },
  watch: {
    selectedDate(newValue) {
      this.$emit('date-selected', newValue);
    }
  }
}
</script>
Copy after login

In the above code, we use the date input box provided by HTML5 to implement the date selection function. Through the v-model directive, bind the selected date to the selectedDate variable. When selectedDate changes, listen to and trigger the date-selected event through watch.

3. Write the time selection component
Next, we write the time selection component. Below is a simple time picker code example, again containing only the necessary functionality.

<template>
  <div>
    <input type="time" v-model="selectedTime">
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedTime: null
    }
  },
  watch: {
    selectedTime(newValue) {
      this.$emit('time-selected', newValue);
    }
  }
}
</script>
Copy after login

Similarly, in the above code, we use the time input box provided by HTML5 to implement the time selection function. Through the v-model directive, bind the selected time to the selectedTime variable. When selectedTime changes, listen and trigger the time-selected event through watch.

4. Combining date selection and time selection components
Now that we have written the date selection component and time selection component, we need to combine them to create a complete time selector component. The following is a combined code example:

<template>
  <div>
    <date-picker @date-selected="onDateSelected"></date-picker>
    <time-picker @time-selected="onTimeSelected"></time-picker>
    <p>选择的时间:{{ selectedDateTime }}</p>
  </div>
</template>

<script>
import DatePicker from './DatePicker.vue';
import TimePicker from './TimePicker.vue';

export default {
  components: {
    DatePicker,
    TimePicker
  },
  data() {
    return {
      selectedDate: null,
      selectedTime: null
    }
  },
  computed: {
    selectedDateTime() {
      if (this.selectedDate && this.selectedTime) {
        return `${this.selectedDate} ${this.selectedTime}`;
      }
      return '请选择时间';
    }
  },
  methods: {
    onDateSelected(date) {
      this.selectedDate = date;
    },
    onTimeSelected(time) {
      this.selectedTime = time;
    }
  }
}
</script>
Copy after login

In the above code, by introducing the date-picker and time-picker components in the template, we implement time selection combination of devices. By listening to the date-selected and time-selected events, save the selected date and time to the selectedDate and selectedTime variables. Finally, the date and time are concatenated through the calculated property selectedDateTime for display on the page.

5. Using the time selector component
So far, we have completed the development of the time selector component. Now, let's demonstrate how to use this time picker in other components. Here is an example of using the time-selector component:

<template>
  <div>
    <h1>时间选择器示例</h1>
    <time-selector></time-selector>
  </div>
</template>

<script>
import TimeSelector from './TimeSelector.vue';

export default {
  components: {
    TimeSelector
  }
}
</script>
Copy after login

In the above code, by introducing the time-selector component and using it in the template, we can easily Use the time picker. Because the time selector is an independent component, its development and use can be highly decoupled, improving the readability, maintainability and reusability of the code.

Conclusion:
Through this article, we learned how to use Vue to develop a simple and practical time picker component. From component design, writing to combination and use, we gradually implemented a complete time picker. By studying this example, we can better understand the development and use of Vue components and lay a solid foundation for future project development.

The example code in this article is for reference only. In actual development, it can be adjusted and optimized according to needs to meet specific business needs. I hope this article is helpful to you, and I wish you better results in your Vue component development!

The above is the detailed content of Vue component practice: development of time selector component. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template