首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将香草.js添加到自定义Vue组件中

如何将香草.js添加到自定义Vue组件中
EN

Stack Overflow用户
提问于 2017-04-28 14:19:56
回答 1查看 8.8K关注 0票数 8

我正在尝试向自定义vue组件添加一个简单的选日期器。我不使用webpack,所以我想避免现成的.vue组件,我更了解如何向vue添加简单的javascript。

我在跟踪这是官方的vue教程

我也见过这个密码,但我无法让日期选择器出现。

这是我的小提琴

Html:

代码语言:javascript
复制
<div class="app">
  <datepicker id='date-elem'></datepicker>
</div>

app.js:

代码语言:javascript
复制
Vue.component('date-picker', {
  extends: Flatpickr,
  mounted () {
    this.Flatpickr(date-elem, {})}
})

如果不需要.vue文件,webpack等,我怎么能轻松地将香草js集成到Vue组件中呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-28 14:55:49

你在这里有一些误解。要使它成为一个组件(一个非常基本的组件),您可以这样做。

在Vue中,通常不会扩展外部Javascript库。您通常要做的是称为包装器组件。本质上,它是一个Vue组件,它处理与外部库的所有交互。在这种情况下,您想要使用Flatpickr。在文档中,您需要使用new Flatpickr(element, options)。因此,我们可以在mounted事件中这样做,传递指向根Vue组件元素的this.$el

代码语言:javascript
复制
Vue.component('date-picker', {
    template: "<input type='text'>",
    mounted () {
        new Flatpickr(this.$el, {})
    }
})

这是您更新的小提琴

但是这个组件做的不多。它只允许你选择一个约会。为了允许在组件之外使用该日期,我们希望扩展它以支持v-model。你可能会这么做。

代码语言:javascript
复制
Vue.component('date-picker', {
    props:["value"],
    data(){
        return {
            selectedDate: this.value
        }
    },
    template: "<input type='text' v-model='selectedDate' @input='onInput'>",
    methods:{
        onInput(){
            this.$emit('input', this.selectedDate)
        }
    },
    mounted () {
        new Flatpickr(this.$el, {})
    }
})

现在,你可以这样用它了。

代码语言:javascript
复制
<date-picker v-model="selectedDate"></date-picker>

selectedDate会收到你选择的日期。

这里有一个小提琴显示了这一点。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43682446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档