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 相关文章推荐
jquery Mobile入门—外部链接切换示例代码
Jan 08 Javascript
JavaScript也谈内存优化
Jun 06 Javascript
JavaScript中const、var和let区别浅析
Oct 11 Javascript
JS自定义函数对web前端上传的文件进行类型大小判断
Oct 19 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
Nov 07 Javascript
bootstrap侧边栏圆点导航
Jan 11 Javascript
详解React 在服务端渲染的实现
Nov 16 Javascript
JS实现的计数排序与基数排序算法示例
Dec 04 Javascript
利用ECharts.js画K线图的方法示例
Jan 10 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
Sep 04 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
Feb 06 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
Feb 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
控制PHP的输出:缓存并压缩动态页面
2013/06/11 PHP
php实现在多维数组中查找特定value的方法
2015/07/29 PHP
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
jQuery自定义数值抽奖活动代码
2016/06/11 Javascript
JavaScript 详解预编译原理
2017/01/22 Javascript
@ResponseBody 和 @RequestBody 注解的区别
2017/03/08 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
python3 配置logging日志类的操作
2020/04/08 Python
详解python中groupby函数通俗易懂
2020/05/14 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
2020/12/31 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
颇特女士:NET-A-PORTER(直邮中国)
2020/07/11 全球购物
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
客户答谢会活动方案
2014/08/31 职场文书
Java Shutdown Hook场景使用及源码分析
2021/06/15 Java/Android
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript