1
2
<div2 :u="user" :d="data" txt="helloworld" arr="[1,2,3]"></div2>
<div2 :u="user" :d="data" txt="helloworld" :arr="[1,2,3]"></div2>

props 中声明的数据与组件data 函数return 的数据主要区别就是props 的来自父级,而data 中
的是组件自己的数据,作用域是组件本身,这两种数据都可以在模板template 及计算属性computed
和方法methods 中使用.
如果你要直接传递数字、布尔值、数组、对象,而且不使用v-bind ,传递的仅
仅是字符串
如果是引用类型,指向同一个内存空间,所以props 是对
苦? 象和数组时,在子组件内改变是会影响父纽件的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@include file="/WEB-INF/webpage/common/taglibs.jspf"%>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>${title}</title>
<meta name="decorator" content="single"/>
<script src="/static/common/js/vue.js"></script>


</head>
<body>
<div id="app">
{{name}}
{{user}}
<input v-model="user.name">
<input v-model="data">
<div2 :u="user" :d="data" txt="helloworld" arr="[1,2,3]"></div2>
<div2 :u="user" :d="data" txt="helloworld" :arr="[1,2,3]"></div2>
<div2 :u="user" :d="data" txt="helloworld" g="1" :arr="[1,2,3]"></div2>
</div>
<!--
props 中声明的数据与组件data 函数return 的数据主要区别就是props 的来自父级,而data 中
的是组件自己的数据,作用域是组件本身,这两种数据都可以在模板template 及计算属性computed
和方法methods 中使用.
如果你要直接传递数字、布尔值、数组、对象,而且不使用v-bind ,传递的仅
仅是字符串
<div2 :u="user" :d="data" txt="helloworld" :arr="[1,2,3]"></div2>
-->


<template id="div2">
<div>
txt:{{txt}}<br/>
{{counter}}-{{u}}
<div>{{d}}</div>
子组件的d属性: <input v-model="d">
<div>
{{arr.length}}
</div>
<div>
age-{{age}}
</div>
<div>
txt-{{name}}
</div>
</div>
</template>
<script>

Vue.component("div2",{
template:"#div2",
props:['u','d','txt','arr','g'],
data:function () {
return {
counter:1,
age:this.g,
};
},
computed:{
name:function(){
return this.txt+"_name"
}
}
})

var app=new Vue({
el:"#app",
data:{
"name":"gz",
"user":{
"name":"gongz",
age:1,
},
data:1,

},
methods:{

}
})
</script>
</body>

</html>