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 相关文章推荐
javascript下操作css的float属性的特殊写法
Aug 22 Javascript
网站基于flash实现的Banner图切换效果代码
Oct 14 Javascript
js实现禁止中文输入的方法
Jan 14 Javascript
jQuery寻找n以内完全数的方法
Jun 24 Javascript
JavaScript编程的单例设计模讲解
Nov 10 Javascript
微信小程序 加载 app-service.js 错误解决方法
Oct 12 Javascript
JS新包管理工具yarn和npm的对比与使用入门
Dec 09 Javascript
详解Angular6 热加载配置方案
Aug 18 Javascript
JavaScript实现的拼图算法分析
Feb 13 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
Apr 17 Javascript
vue.js实现左边导航切换右边内容
Oct 21 Javascript
vue实现抽屉弹窗效果
Nov 15 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
文章推荐系统(二)
2006/10/09 PHP
php 获取远程网页内容的函数
2009/09/08 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
删除重复数据的算法
2006/11/23 Javascript
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
2016/06/24 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
vue2 前端搜索实现示例
2018/02/26 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
[02:04]完美世界城市挑战赛秋季赛报名开始 谁是solo路人王?
2019/10/10 DOTA
利用Python抓取行政区划码的方法
2016/11/28 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
Python高级特性切片(Slice)操作详解
2018/09/27 Python
基于python实现把图片转换成素描
2019/11/13 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
python中slice参数过长的处理方法及实例
2020/12/15 Python
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
法律专业应届生自荐信范文
2014/01/06 职场文书
《音乐之都维也纳》教学反思
2014/04/16 职场文书
村安全生产责任书
2014/08/25 职场文书
党员倡议书
2015/01/19 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
react中的DOM操作实现
2021/06/30 Javascript