欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Vue.extend实现挂载到实例上的方法

程序员文章站 2023-12-02 23:09:28
本文实例讲述了vue.extend实现挂载到实例上的方法。分享给大家供大家参考,具体如下: 这里主要是做个笔记 根据官网的说法,vue.extend:是使用基础 vue...

本文实例讲述了vue.extend实现挂载到实例上的方法。分享给大家供大家参考,具体如下:

这里主要是做个笔记

根据官网的说法,vue.extend:是使用基础 vue 构造器,创建一个“子类”。参数是一个包含组件选项的对象。

官网的用法是:

<div id="mount-point"></div>

// 创建构造器
var profile = vue.extend({
 template: '<p>{{firstname}} {{lastname}} aka {{alias}}</p>',
 data: function () {
  return {
   firstname: 'walter',
   lastname: 'white',
   alias: 'heisenberg'
  }
 }
})
// 创建 profile 实例,并挂载到一个元素上。
new profile().$mount('#mount-point')

最终结果如下:

<p>walter white aka heisenberg</p>

感觉这样写不太美观

于是改为下面这样写:

在文件夹./src/component/expend,新建两个文件:main.js和main.vue

main.vue就是你的组件,爱怎么写怎么写

main.js是把组件挂载到实例上,代码如下:

import vue from 'vue'
import main from './main.vue'
let builder = vue.extend(main)
export default {
  install (vue) {
    vue.prototype.$yourname = this.getcomponent
  },
  getcomponent (param) {
    let instance = new builder({
      propsdata: { param }
    })
    instance.vm = instance.$mount()
    document.body.appendchild(instance.vm.$el)
    return instance
  }
}

在入口文件main.js,添加代码:

import vue from 'vue'
import mycomponent from './src/component/expend/main.js'
vue.use(mycomponent)

然后在页面中就可以这样使用了:

this.$yourname(param)

希望本文所述对大家vue.js程序设计有所帮助。