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


Posted in Javascript onMay 01, 2019

本文实例讲述了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程序设计有所帮助。

Javascript 相关文章推荐
在textarea中屏蔽js的某个function的javascript代码
Apr 20 Javascript
JavaScript 继承的实现
Jul 09 Javascript
菜鸟javascript基础资料整理2
Dec 06 Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
Jul 31 Javascript
js实现收缩菜单效果实例代码
Oct 30 Javascript
浅析JS中document对象的一些重要属性
Mar 06 Javascript
node.js cookie-parser 中间件介绍
Jun 06 Javascript
修改Jquery Dialog 位置的实现方法
Aug 26 Javascript
vue.js实现简单轮播图效果
Oct 10 Javascript
vue使用axios时关于this的指向问题详解
Dec 22 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
Nov 21 Javascript
微信小程序系列之自定义顶部导航功能
May 21 Javascript
JS html事件冒泡和事件捕获操作示例
May 01 #Javascript
JS实现的贪吃蛇游戏案例详解
May 01 #Javascript
javascript原型链学习记录之继承实现方式分析
May 01 #Javascript
微信小程序实现卡片左右滑动效果的示例代码
May 01 #Javascript
微信小程序常见页面跳转操作简单示例
May 01 #Javascript
浅谈对于react-thunk中间件的简单理解
May 01 #Javascript
vue增加强缓存和版本号的实现方法
May 01 #Javascript
You might like
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
Netbeans 8.2与PHP相关的新特性介绍
2016/10/08 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
2014/08/07 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
用Python实现协同过滤的教程
2015/04/08 Python
解析Python中while true的使用
2015/10/13 Python
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
2016/07/02 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
大学生文员专业个人求职信范文
2014/01/05 职场文书
敬老院活动总结
2014/04/28 职场文书
七一党日活动总结
2014/07/08 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
详解在SQLPlus中实现上下键翻查历史命令的功能
2022/03/18 SQL Server