This time I will show you how to use vue to cut the preview component, and what are the precautions for using vue to cut the preview component. The following is a practical case, let's take a look.
The first step: first use vue-cli to install the scaffolding (see the vue-cli official website if you don’t know how to install it)// 初始化vue-cli vue init webpack my-plugin
Step 3: Register components1. Reference all plug-ins: 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 }
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: '<App/>' })
// 导入vue import VueCrop from './VueCrop.vue' // Vue.js 的插件应当有一个公开方法 install 。这个方法的第一个参数是 Vue 构造器 VueCrop.install = function (Vue) { // 注册组件 Vue.component(VueCrop.name, VueCrop) } export default VueCrop
constructor method:
function MyPlugin(){ console.info('构造函数') } MyPlugin.prototype.install=function(vue,options){ console.info('构造器vue:'+vue); }
Vue.component()
import { install } from 'src/components/index.js' vue.use(install)
Development specifications, of which point 2 is explained in detail
First, determine your own calling method and the parameters that need to be exposed<vue-crop :crop-url="cropUrl1" :ratio="ratio" :height="460" :width="460" :previewJson="previewJson1" class="c-crop--preview_right" @afterCrop="afterCrop" > >
callback function after cropping is completed, and the others are attribute configurations
in the componentsrc/components/VueCrop/VueCrop.vue, You can use
this.$emit('afterCrop') to trigger the afterCrop event in the demo
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) }) }
How to use Vue combined with Video.js to play m3u8 videos
The above is the detailed content of How to use vue to crop preview component. For more information, please follow other related articles on the PHP Chinese website!