Vue extend的基本用法(实例详解)


Posted in Javascript onDecember 09, 2019

Vue.extend 属于 Vue 的全局 API,在实际业务开发中我们很少使用,因为相比常用的 Vue.component 写法使用 extend 步骤要更加繁琐一些。

我们创建Vue实例时,都会有一个el选项,来指定实例的根节点,如果不写el选项,那组件就处于未挂载状态。Vue.extend 的作用,就是基于 Vue 构造器,创建一个‘ 子类 ',它的参数跟new Vue的基本一样,但data要跟组件一样,是个函数,再配合$mount,就可以渲染组件,并且挂载到任意指定的节点上,比如body(这是单文件组件做不到的)

下面我们就来看两个例子:

1.在单文件组件中使用

<template>
 <div id="about"></div>
</template>
<script>
import Vue from 'vue/dist/vue.js'
var Profile = Vue.extend({
 template: '<p>{{firstName}} {{lastName}} aka {{alias}}</p>',
 data: function () {
  return {
   firstName: 'Walter',
   lastName: 'White',
   alias: 'Heisenberg'
  }
 }
})
// 创建 Profile 实例,并挂载到一个元素上。
let profile=new Profile().$mount();
 
export default {
 mounted(){
  let divid=document.getElementById('about');
  divid.appendChild(profile.$el)
 }
}
</script>

这里需要注意几个点:

报错信息

Vue extend的基本用法(实例详解)

如果有小伙伴遇到了这个问题,那么你导入的是

import Vue from 'vue'

这个时候只需要修改成即可解决问题

import Vue from 'vue/dist/vue.js'

在单文件组件中的挂载问题:

因为这里是通过获取节点的方式添加到某个元素内,所以一定要在钩子函数中挂载,确保当前页面的dom节点加载完成。

mounted(){
  let divid=document.getElementById('about');
  divid.appendChild(profile.$el)
 }

2.单独构建js文件

//index.js
 
import Vue from 'vue/dist/vue.js'
 
export default function Create(node){
  var notiful=Vue.extend({
    template:`<p>{{name}}</p>`,
    data(){
      return {
        name:"liuhuas"
      }
    }
  })
  
  var noti=new notiful().$mount();
  document.getElementById(node).appendChild(noti.$el);
}

创建完成后我们就可以在任何地方引入这个js文件 ,并执行Create方法,注意的是这里的Create方法里面也获取了dom,那么就需要在相应的钩子函数中去执行这个方法。

总结

以上所述是小编给大家介绍的Vue extend的基本用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
JS 字符串连接[性能比较]
May 10 Javascript
基于jQuery的计算文本框字数的代码
Jun 06 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
Feb 28 Javascript
JS获取浏览器语言动态加载JS文件示例代码
Oct 31 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
Dec 04 Javascript
JavaScript面试题大全(推荐)
Sep 22 Javascript
详解自动生成博客目录案例
Dec 09 Javascript
JS仿京东移动端手指拨动切换轮播图效果
Apr 10 Javascript
three.js实现围绕某物体旋转
Jan 25 Javascript
JS Select下拉框(支持输入模糊查询)
Feb 04 Javascript
js, jQuery实现全选、反选功能
Mar 08 Javascript
vue router 组件的高级应用实例代码
Apr 08 Javascript
vue基于v-charts封装双向条形图的实现代码
Dec 09 #Javascript
微信小程序图片加载失败时替换为默认图片的方法
Dec 09 #Javascript
vue如何使用async、await实现同步请求
Dec 09 #Javascript
Vue替代marquee标签超出宽度文字横向滚动效果
Dec 09 #Javascript
vue新建项目并配置标准路由过程解析
Dec 09 #Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
Dec 09 #Javascript
简述Vue中容易被忽视的知识点
Dec 09 #Javascript
You might like
DIY一个适配电脑声卡的动圈话筒放大器
2021/03/02 无线电
玩转虚拟域名◎+ .
2006/10/09 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
jQuery制作仿腾讯web qq用户体验桌面
2013/08/20 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
2016/12/17 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
2018/08/20 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
2019/09/25 Javascript
Openlayers实现地图的基本操作
2020/09/28 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
[57:38]2018DOTA2亚洲邀请赛3月30日 小组赛A组 OpTic VS OG
2018/03/31 DOTA
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
python基于mysql实现的简单队列以及跨进程锁实例详解
2014/07/07 Python
Python在groupby分组后提取指定位置记录方法
2018/04/20 Python
python简单操作excle的方法
2018/09/12 Python
Python实现DDos攻击实例详解
2019/02/02 Python
Python3之手动创建迭代器的实例代码
2019/05/22 Python
set在python里的含义和用法
2019/06/24 Python
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
研究生导师推荐信
2015/03/25 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP
css height属性中的calc方法详解
2021/06/03 HTML / CSS
python playwright 自动等待和断言详解
2021/11/27 Python
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS