【vue笔记系列第三篇】Vue.extend使用

一,概述

1,定义

1.1,Vue.extend返回的是一个扩展实例构造器,也就是预设了部分选项的Vue实例构造器。

1.2,其主要用来服务于Vue.component,用来生成组件

可以简单的理解为当在模板中遇到该组件名称作为标签的自定义元素时,会自动调用扩展实例构造器来生产组件实例,并挂载到自定义元素上。

1.3,vue构造器生命周期

 

2,栗子
我们希望在html中只需要写<baidu></baidu>就可以显示百度,并添加百度链接 ,这和自定义组件很像,但是他没有传递任何参数,只是个静态标签。

<html>
<head>
    <title>Vue.extend扩展实例构造器</title>
</head>
<body>
    <baidu></baidu>
    <!-- <span id='baidu'>跳转</span> -->
    <script type="text/javascript" src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
    <script type="text/javascript">

        //使用Vue.extend,用它来编写一个扩展实例构造器。
        var baiduExtend=Vue.extend({
            template:"<p><a :href='bdurl'>{{bdname}}</a></p>",
            data:function(){
                return {
                    bdname:'百度',
                    bdurl:'https://www.baidu.com'
                }
            }
        })
        //扩展实例构造器是需要挂载的,我们再进行一次挂载
        new baiduExtend().$mount('baidu');
        //还可以通过HTML标签上的id或者class来生成扩展实例构造器,Vue.extend里的代码是一样的
        // new baiduExtend().$mount('#baidu');
    </script>
</body>
</html>

3,效果

二,分析

1,官方api地址

https://cn.vuejs.org/v2/api/#Vue-extend

1.1 页面

 

2,实验

2.1 html元素

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

2.2 js写法

构造

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')

 2.3 html全文

<html>
<head>
    <title>Vue.extend扩展实例构造器</title>
</head>
<body>
    <div id="mount-point"></div>
    <!-- <span id='baidu'>跳转</span> -->
    <script type="text/javascript" src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
    <script type="text/javascript">
		// 创建构造器
		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')
    </script>
</body>
</html>

2.4 效果

三,总结

vue.extend就是一个扩展构造器。可以对自定义标签进行更容易的数据绑定

  • 14
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值