Vue ref属性 && props配置项

 

 1 // #    ref属性:
 2 // #        1.用来给元素或者子组件注册引用信息(id的替代者)
 3 // #        2.应用在html标签上获取的是真实的DOM元素,应用在组件标签上是组件实例对象(vc)
 4 // #        3.使用方法:
 5 // #            打标识:<h1 ref="title">....</h1>
 6 // #            获取:console.log(this.$refs.title);
 7 
 8 <template>
 9     <div>
10         <h1 v-text="msg" ref="title"></h1>
11         <button @click="showDOM" ref="btn">点我显示上面h1的DOM</button>
12         <School ref="school"></School>
13     </div>
14 </template>
15 
16 <script>
17     import School from './components/School.vue'
18 
19     export default {
20         name: 'App',
21         components:{
22             School,
23         },
24         data(){
25             return {
26                 msg: 'hello'
27             }
28         },
29         methods:{
30             showDOM(e){
31                 console.log(this.$refs.title);  // 真实DOM元素
32                 console.log(this.$refs.btn);    // 真实DOM元素
33                 console.log(this.$refs.school); // School组件的实例对象
34             }
35         }
36     }
37 </script>
38 
39 <style scoped>
40 
41 </style>

 

 1 // 配置项props
 2 //         功能:让组件接受外部传过来的数据
 3 //             1.传递数据:<Demo name="xxx" />
 4 //             2.接受数据:
 5 //                 .第一种方式(只接受):props:['name']
 6 //                 .第二种方式(限制类型):props:{name: String}
 7 //                 .第三种方式(限定类型、限制必填、指定默认值):props:{name: {type:String,required:true,default:'zhangsan'}}
 8 //         备注:props是只读的,Vue底层会监测你对props的修改,如果进行了修改,就会发出警告,若业务需求确实需要修改,那么请赋值props的内容到data中一份,然后去修改data中的数据
 9 <template>
10     <div class="school">
11         <h1>这里是{{msg}}信息</h1>
12         <h3>名字:{{name}}</h3> <br />
13         <h3>性别:{{sex}}</h3> <br />
14         <h3>年龄:{{myAge+1}}</h3> <br />
15         <button @click="addAgeOne">点我年龄+1</button>
16     </div>
17 </template>
18 
19 <script>
20     export default {
21         name: 'School',
22         data(){
23             return {
24                 msg: '学生',
25                 // name: 'Tony',
26                 // sex: 'man',
27                 myAge: this.age
28             }
29         },
30         // props:['name', 'age', 'sex'],
31         // props:{
32         //     name: String,
33         //     age: Number,
34         //     sex: String
35         // },
36         props:{
37             name:{
38                 type:String,
39                 required: true,
40             },
41             age:{
42                 type:Number,
43                 default: 99
44             },
45             sex:{
46                 type:String,
47                 required:true
48             }
49         },
50         methods:{
51             addAgeOne(e) {
52                 this.myAge++;
53                 console.log('addAgeOne');
54             }
55         }
56 
57     }
58 </script>
59 
60 <style scoped>
61     .school{
62         background-color: orange;
63     }
64 </style>

 

posted @ 2022-05-27 17:16  看一百次夜空里的深蓝  阅读(151)  评论(0编辑  收藏  举报