80 lines
1.6 KiB
HTML
80 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>组件间数据传递</title>
|
|
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
|
|
</head>
|
|
<body>
|
|
<div id="app">
|
|
<quanju @aa="bb" :content="list"></quanju>
|
|
<v-jubu></v-jubu>
|
|
</div>
|
|
</body>
|
|
<script>
|
|
Vue.component('quanju', {
|
|
props:{
|
|
content: Array,
|
|
},
|
|
data(){
|
|
return {
|
|
abcd: '我是全局组件'
|
|
}
|
|
},
|
|
methods:{
|
|
submit() {
|
|
this.$emit("aa","4")
|
|
}
|
|
},
|
|
template: `
|
|
|
|
<div>
|
|
<buttom @click="submit">提交</buttom>
|
|
<ul>
|
|
<li v-for="(item,index) in content">{{item.id}}</li>
|
|
</ul>
|
|
</div>
|
|
`
|
|
});
|
|
|
|
var jubuzujian = {
|
|
data() {
|
|
return{
|
|
mesaage:'我是局部组件'
|
|
}
|
|
},
|
|
methods: {
|
|
setchilder() {
|
|
return "嘿嘿嘿"
|
|
}
|
|
},
|
|
template: `
|
|
<div>
|
|
<h2>{{mesaage}}</h2>
|
|
<h3>
|
|
<slot name="like"></slot>
|
|
</h3>
|
|
</div>
|
|
`
|
|
}
|
|
new Vue({
|
|
el: '#app',
|
|
data:{
|
|
list:[
|
|
{id:2},
|
|
{id:3},
|
|
{id:4}
|
|
]
|
|
},
|
|
components: {
|
|
'v-jubu': jubuzujian
|
|
},
|
|
methods:{
|
|
bb(val){
|
|
alert('登录'+val)
|
|
}
|
|
|
|
}
|
|
})
|
|
</script>
|
|
</html> |