<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>进一步了解component的话法糖</title>
<script src="../vue.js"></script>
</head>
<body>
<div>这是一个全局注册的</div>
<div id="app">
<parent></parent>
</div>
</body>
</html>
<script>
var child= Vue.extend({template:'<p>this is child component</p>'});
//Vue.component("组件名",{});在注册之前会自动创建(调用vue.extend()方法 )
//这是一个全局注册(兼创建与注册)
Vue.component("parent",{//有时候我们可以省略,extend.
template:'<div>this is parent component ------ {{text}} <child-component></child-component> </div>',//局部使用
components:{
"child-component":child,//局部注册
},
//data:function(){}
data(){
return {text:'哈哈哈,我是组件内部的text'}
},
});
var vm= new Vue({
el:'#app',
data:{},
});
<body>
<div>这是一个局部注册</div>
<div id="app1">
<div><button v-on:click=get>这里触发get方法</button></div>
<parent-components></parent-components>
</div>
</body>
<script>
// var child=Vue.extend({template:"<span> ------child element------</span>"});
var vp=new Vue({
el:'#app1',
data:{},
methods:{
get:function(){alert("这是构造器中get(全局)");}
},
components:{
"parent-components":{
template:"<div>---------<span> parent components</span><p><button v-on:click=get>点击触发parent的get</button></p> <div><child-component></child-component></div>--------</div>",
components:{
//局部注册再一次局部注册
"child-component":{
template:"<span> ------child <button v-on:click=get>点击触发child中的get方法</button>element------</span>",
methods:{
get:function(){
alert("这是局部注册child-component组件中get");
}
}
}
},
methods:{
get:function(){
alert("这是蝉联注册parent-components里面的方法");
}
},
},
},
});
</script>
<script type="text/x-template" id="myComponent">
<div>
<span>{{msg}}</span>
</div>
</script>
<template id='myCom'>
<span>{{msg}}</span>
</template>
<div id="app">
<parent-component-script></parent-component-script>
<parent-component-tem></parent-component-tem>
</div>
var vm=new Vue({
el:"#app",
data:{},
components:{
"parent-component-script":{
template:'#myComponent',
data(){return{msg:'这里是script'};},
},
"parent-component-tem":{
template:'#myCom',
data(){return{msg:'这里是template'} }
},
},
});
<div id="app">
<son :son-counter="counter"></son>
<p>parent:<input type="text" v-model="counter"/></p>
</div>
const son={
template:`<div>son:<input v-model="sonCounter" /></div>`,
props:{sonCounter:Number},
};
var app=new Vue({
el:'#app',
data:{
counter:0,
},
components:{
son
}
});
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有