如何使用vue裁切预览组件

这次给大家带来如何使用vue裁切预览组件,使用vue裁切预览组件的注意事项有哪些,下面就是实战案例,一起来看一下。

第一步:先用vue-cli安装脚手架(不会安装的看 vue-cli官网)

// 初始化vue-clivue init webpack my-plugin

登录后复制

第二步:创建文件

新建src/views/validSlideDemo.vue,

src/components里新建VueCrop/index.js,VueCrop.vue,

在routes/index.js配置访问路由(具体看github源码)

最终生成的文件结构如下图:

如何使用vue裁切预览组件 

第三步:注册组件

1.引用所有插件:src/components/index.js

// 导入插件入口文件import VueCrop from './VueCrop/index.js'const install = function (Vue, opts = {}) { /* 如果已安装就跳过 */ if (install.installed) return // 注册插件 Vue.component(VueCrop.name, VueCrop)}// 全局情况下注册插件if (typeof window !== 'undefined' && window.Vue) { install(window.Vue)}export { install, // 此处是为了兼容在vue内单独引入这个插件,如果是main.js全局引入就可以去掉 VueCrop}

登录后复制

2.全局调用插件:src/main.js ( vue plugins官方文档解说install )

import Vue from 'vue'import App from './App'import router from './router'// 新加的:导入入口文件import { install } from 'src/components/index.js'// 全局调用,相当于调用 `MyPlugin.install(Vue)`Vue.use(install)Vue.config.productionTip = false/* eslint-disable no-new */new Vue({ el: '#app', router, components: { App }, template: ''})

登录后复制

3.VueCrop入口文件调用VueCrop.vue:src/components/VueCrop/index.js

// 导入vueimport VueCrop from './VueCrop.vue'// Vue.js 的插件应当有一个公开方法 install 。这个方法的第一个参数是 Vue 构造器VueCrop.install = function (Vue) { // 注册组件 Vue.component(VueCrop.name, VueCrop)}export default VueCrop

登录后复制

小结:我一开始一直有个误解,以为myPlugin.install是vue的一个方法,其实不是,他只是我们构造plugin识的一个公开方法,可以理解为原生js中的构造函数的方法:

function MyPlugin(){ console.info('构造函数')}MyPlugin.prototype.install=function(vue,options){ console.info('构造器vue:'+vue);}

登录后复制

而真正注册组件的是:Vue.component()

所以,vue插件注册的过程是:

1.调用main.js中:

import { install } from 'src/components/index.js'vue.use(install)

登录后复制

2.index.js添加install方法,调用Vue.component注册组件

3.组件内的index.js同所有组件的index.js一样

第四步:设计开发自己的组件,构建组件结构

在此之前,可以先了解下组件的命名规范等,可参考文章 掘金:Vue前端开发规范 ,其中第2点有详细讲解

首先,确定自己的调用方式和需要暴露的参数

>

登录后复制

其中,@afterCrop=”afterCrop”是裁切完成的回调函数,其他是属性配置

在组件src/components/VueCrop/VueCrop.vue内,可以用this.$emit(‘afterCrop’)触发demo里的afterCrop事件

组件结构上,主要分为:裁切主要部分,选框组件(VueCropTool.vue),裁切框宽度、位置坐标等计算(VueCropMove.js),拖拽事件注册公共js(components/utils/draggable.js)

draggable.js是参照element里的,修改了一部分,源码如下

export default function (element, options) { const moveFn = function (event) {  if (options.drag) {   options.drag(event)  } } // mousedown fn const downFn = function (event) {  if (options.start) {   // 调用参数中start函数   options.start(event)  } } // mouseup fn const upFn = function (event) {  document.removeEventListener('mousemove', moveFn)  document.removeEventListener('mouseup', upFn)  document.onselectstart = null  document.ondragstart = null  if (options.end) {   // 调用参数中end函数   options.end(event)  } } // 绑定事件 element.addEventListener('mousedown', event => {  if (options.stop && options.stop(event, element) === false) {   return false  }  document.onselectstart = function () {   return false  }  document.ondragstart = function () {   return false  }  document.addEventListener('mousedown', downFn)  document.addEventListener('mousemove', moveFn)  document.addEventListener('mouseup', upFn) })}

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

怎样使用Vue结合Video.js播放m3u8视频

如何使用Vue按键修饰符处理事件

以上就是如何使用vue裁切预览组件的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2752150.html

(0)
上一篇 2025年3月8日 06:16:40
下一篇 2025年3月8日 06:16:53

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何使用vuex结合localstorage动态监听storage变化

    这次给大家带来如何使用vuex结合localstorage动态监听storage变化,使用vuex结合localstorage动态监听storage变化的注意事项有哪些,下面就是实战案例,一起来看一下。 需求:不同组件间共用同一数据,当一个…

    编程技术 2025年3月8日
    200
  • 通过vue实现添加axios组件,解决post传参数为null方面的问题(详细教程)

    下面我就为大家分享一篇基于vue 添加axios组件,解决post传参数为null的问题,具有很好的参考价值,希望对大家有所帮助。 好,下面上货。 1、安装axios npm install axios –save 登录后复制 2、添加a…

    2025年3月8日
    200
  • 怎样操作Vue表单类父子组件数据传递

    这次给大家带来怎样操作Vue表单类父子组件数据传递,操作Vue表单类父子组件数据传递的注意事项有哪些,下面就是实战案例,一起来看一下。 使用Vue.js进行项目开发,那必然会使用基于组件的开发方式,这种方式的确给开发和维护带来的一定的便利性…

    编程技术 2025年3月8日
    200
  • 如何使用nodejs日志模块winston

    这次给大家带来如何使用nodejs日志模块winston,使用nodejs日志模块winston的注意事项有哪些,下面就是实战案例,一起来看一下。 winston 日志模块 在使用 nodejs winston 模块中,加上相关的两个模块,…

    编程技术 2025年3月8日
    200
  • 如何使用Vue中watch

    这次给大家带来如何使用Vue中watch,使用Vue中watch的注意事项有哪些,下面就是实战案例,一起来看一下。 假设有如下代码: fullname: {{fullname}} FirstName: new Vue({ el: ‘#roo…

    编程技术 2025年3月8日
    200
  • 怎样实现Vue项目中使用Vux

    这次给大家带来怎样实现Vue项目中使用Vux,Vue项目中使用Vux的注意事项有哪些,下面就是实战案例,一起来看一下。 默认已安装vue环境 1.安装vux npm install vux –save-dev 2.安装vux-l…

    2025年3月8日
    200
  • 如何操作Vue项目内使用d3.js

    这次给大家带来如何操作Vue项目内使用d3.js,Vue项目内使用d3.js的注意事项有哪些,下面就是实战案例,一起来看一下。 之前写一个 Demo里面 有些东西要使用d3实现一些效果 但是在很多论坛找资源都找不到可以在Vue里面使用D3.…

    2025年3月8日
    200
  • 如何制作并使用Vue波纹按钮组件

    这次给大家带来如何制作并使用Vue波纹按钮组件,制作并使用Vue波纹按钮组件的注意事项有哪些,下面就是实战案例,一起来看一下。 先说一下用法: 默认按钮默认按钮定义速度和初始的波浪透明度 登录后复制 原理: 这里用的是canvas + re…

    编程技术 2025年3月8日
    200
  • 怎样进行JS内DOM节点使用

    这次给大家带来怎样进行JS内DOM节点使用,JS内DOM节点使用的注意事项有哪些,下面就是实战案例,一起来看一下。 DOM操作在JS中可以说是非常常见了吧,很多网页的小功能的实现,比如一些元素的增删操作等都可以用JS来实现。那么在DOM中我…

    2025年3月8日
    200
  • 怎样操作vscode内使用.vue代码

    这次给大家带来怎样操作vscode内使用.vue代码,操作vscode内使用.vue代码的注意事项有哪些,下面就是实战案例,一起来看一下。 1.设置.vue模板 打开注意事项,点击文件 —— 首选项 —— 用户代码片段,会弹出来一个输入框。…

    2025年3月8日
    200

发表回复

登录后才能评论