划重点
- 子组件 / 父组件 定义
- 组件中:props 的使用
- 组件中:data 的使用(有 return 返回值) ; 区别:Vue中的data (没有返回值);
- 组件方法中 emit 的使用:emit:英文原意是:触发、发射 的意思
- components :直接在Vue的方法中声明和绑定要使用的组件
小炒肉:温馨可口
<!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-2.6.10.js"></script>
</head>
<body>
<!-- 需要实现的是:子组件 和 父组件(Vue)之间传值
总体逻辑是:通过点击组件(子组件)事件调用 Vue中的函数;;而 在子组件中传值可以在Vue函数中进行使用
1: 在Vue中定义个 函数如: vuemethods()
2:定义一个组件 点击组件 可以调用 Vue中的函数 vuemethods 方法;如果这个方法中有参数,可以通过组件传递参数给这个方法:vuementhods
-->
<div id="app">
<!-- 在 组件:comname1中通过 绑定一个名字为:msgcom1 的事件:vuemethods
也即是: 把Vue中的函数:vuemethods 复制给 了一个在组件中名字为:msgcom1的函数属性
这里的 msgcom1 可以自己任意命名
-->
<comname1 v-on:msgcom1="vuemethods"></comname1>
</div>
<template id="comname1">
<div>
<h3>{{ msg2 }}</h3>
<a href="" @click.prevent="clickMsg">点击</a>
</div>
</template>
<script>
var comtem1 = {
template: '#comname1',
props: ['msgcom1'],
data: function () {
return {
temmsg: 'temp中的data定义123456',
msg2:'22'
}
},
methods: {
clickMsg() {
this.$emit('msgcom1' ,this.temmsg,"-------我是参数2")
}
}
}
var vm = new Vue({
el: '#app',
data: {
},
methods: {
vuemethods(data,data2) {
alert("组件之间传递~~~" +data+data2)
}
},
components: {
comname1: comtem1
}
})
</script>
</body>
</html>
一张图片 ~ ~ ~