传参之前的代码:
- <div id="box">
- <navbar>navbar>
- <navbar>navbar>
- div>
- <script>
- Vue.component("navbar",{
- template:`
- <div>
- <button>leftbutton>
- <span>navspan>
- <button>rightbutton>
- div>`
- })
-
- //根组件
- new Vue({
- el: "#box",
- data: {
-
- },
- })
- script>
结果:

调用了组件两次,但是因为组件是固定的,所以里面的内容显示的都是“nav”,那如果想显示不同的内容呢,就要“传参数”了;
传参之后的代码:
- <div id="box">
- <navbar myname="电影" :myright="false">navbar>
- <navbar myname="影院" >navbar>
- div>
- <script>
- Vue.component("navbar",{
- props:{
- myname:{
- type:String,
- default:""
- },
- myright:{
- type:Boolean,
- default:true
- }
- },//接受myname属性、属性验证、设置默认属性
- template:`
- <div>
- <button>leftbutton>
- <span>{{myname}}span>
- <button v-show="myright">rightbutton>
- div>`
- })
-
- //根组件
- new Vue({
- el: "#box",
- data: {
-
- },
- })
- script>
结果:

props:["myname,myright"] 有一点需要注意:
![]()
myright属性是控制右边那个按钮显示不显示的;
看上面这个代码发现,myright前面加了“:”,原因是不加的话,后面双引号引起来的就是字符串,但是其实我们想传的是布尔值,所以要在前面加上“:”;
加了“:”那等号后面就是js的代码,动态绑定,就传的是布尔值;不加的话就是直接当字符串用了;
只要在父组件里的div里,子组件是可以用父组件的状态:
- 凡是放在