<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="./lib/vue.js"></script>
</head>
<body>
<!-- mytep定义 -->
<template id="mytmp">
<div>
<h1>这是使用template创建出来的组件,有提示和语法功能</h1>
<h3>不错,非常好用</h3>
<h1>我是子组件-------{{ parentmsg }}</h1>
<input type="button" value="我是子组件,点击它触发父组件show方法" @click="click1">
</div>
</template>
<div id="app">
<!-- 调用组件,通过属性绑定的方式传递给子组件内 -->
<mycom3 v-bind:parentmsg="msg" v-on:func="show"></mycom3>
</div>
<script>
Vue.component('mycom3', {
// 组件使用一个定义了一个id为mytmp
template: "#mytmp",
// 子组件接收的父组件,必须把属性写入props列表里面,props里面都是只读的
props: ['parentmsg'],
// data里面都是可读可写的,子组件的数据可以通过ajax请求回来的数据放到data身上
data: function () {
return {
person:{
name:"大头儿子",
age:6
},
title: "qqq",
content: "www"
}
},
methods:{
click1(){
// 点击子组件的方法,触发父类的方法,同时把子类data的person传递给父类
this.$emit('func',this.person)
}
}
})
var vm = new Vue({
el: '#app',
data: {
msg: "我是父组件的msg-data ",
msg2:""
},
methods: {
// data是子类传递过来的person对象
show(data){
console.log("父组件的show方法")
this.msg = this.msg + data.name
}
}
});
</script>
</body>
</html>