VueJS 自定义组件

Posted

技术标签:

【中文标题】VueJS 自定义组件【英文标题】:VueJS custom component 【发布时间】:2017-01-28 13:16:27 【问题描述】:

我需要添加到我的组件jquery cropit plugin。所以我将cropit添加到我的package.json并安装

接下来我尝试了

<template>
  <div id="image-cropper">...</div>
</template>

import 'cropit'
export default
  mounted: function()
        $('#image-cropper').cropit(
            imageState: 
                src: 'http://lorempixel.com/500/400/',
            ,
        );
  

但不工作

chrome 控制台输出

未捕获的类型错误:无法读取未定义的属性“推送” Cropit.init(评估在(app-d1eddf4073.js:2440), :274:41) 在新 Cropit(评估在(app-d1eddf4073.js:2440), :194:11) 在 htmlDivElement.eval (eval at (app-d1eddf4073.js:2440), :102:21) 在 Function.each (评估在(app-d1eddf4073.js:176), :368:19) 在 jQuery.fn.init.each (评估在(app-d1eddf4073.js:176), :157:17) 在 jQuery.fn.init.init(评估在(app-d1eddf4073.js:2440), :96:18) 在 jQuery.fn.init._jquery2.default.fn.cropit (评估在 (app-d1eddf4073.js:2440), :147:26) 在 VueComponent.mounted (eval at (app-d1eddf4073.js:1565), :65:29) 在 callHook (评估在(app-d1eddf4073.js:2428), :2758:19) 在 Object.insert(评估在(app-d1eddf4073.js:2428), :1769:5)

【问题讨论】:

【参考方案1】:

目前cropit插件似乎与jQuery 3.0及以上版本不兼容。在github 上查看此问题。

我安装了jQuery 2.1,并没有在我的控制台中发现任何错误:

<template>
  <div class="cropit">
    <div id="image-cropper"></div>
  </div>
</template>

<script>

import cropit from "cropit"
import $ from "jquery"

export default 
  name: 'cropit',
  mounted: function()  
    $('#image-cropper').cropit();
  

</script>

【讨论】:

如果其他一切都需要 3.0 怎么办? Cropit 是 jQuery 插件,它依赖于 jQuery。正如您从 github 链接中看到的那样,其他人也有和您一样的问题 - 它与 jQuery 3.0 不兼容 像我一样尝试使用低版本的jQuery,你应该不会有任何错误。

以上是关于VueJS 自定义组件的主要内容,如果未能解决你的问题,请参考以下文章

VueJS注册组件错误未知自定义元素

VueJS 自定义组件导入有时有效

vuejs的组件化开发中怎么自定义class覆盖原有样式?

VueJS - 绑定自定义道具不适用于 b-form 组件

想在 vuejs 中使用 vuetify 小吃吧作为全局自定义组件

vuejs的组件化开发中,要怎么自定义class,覆盖原有的css样式