zoukankan      html  css  js  c++  java
  • Vue组件细节1

    标签中is属性,可以规避html5规则的一些错误。

     1 <div id="app">
     2     <table>
     3 <!--        表格中如果使用tr或类似这种多层包裹的,使用组件代替里面的内容,有可能出现生成的tr在tbody外-->
     4         <tbody>
     5             <row></row>
     6 <!--            通过is属性将组件指定好,就可以规避这个问题-->
     7             <tr is="row"></tr>
     8         </tbody>
     9     </table>
    10 </div>
    11 <script src="../js/vue.js"></script>
    12  
    13 <script>
    14     // 定义全局组件
    15     Vue.component('row',{
    16         template:'<tr>test</tr>'
    17     });
    18     var vm = new Vue({
    19         el:'#app',
    20     })
    21 </script>

    父组件和子组件之间传递参数,子组件对参数进行校验

     1 <div id="app">
     2     <child content="test"></child>
     3 </div>
     4 <script src="../js/vue.js"></script>
     5 <script>
     6     Vue.component('child',{
     7         template:'<div>{{content}}</div>',
     8         // 父组件向子组件传递数据时,可以进行验证校验
     9         props:{
    10             content:{
    11                 // type 父组件向子组件传递的数据类型 列表可以写入多中类型判断
    12                 type: [String,Number],
    13                 // required 是否必须传
    14                 required: true,
    15                 default: '默认参数',
    16                 // 自定义校验规则 value参数是父组件传递进来的参数
    17                 validator:function (value) {
    18                     return (value.length>5)
    19                 }
    20  
    21             }
    22         }
    23     });
    24     var vm = new Vue({
    25         el:'#app'
    26     })
    27 </script>

    父组件向子组件传值

     1 <div id="app">
     2     //num2参数使用父组件的data属性
     3     <number :num2="number2" num3="10"></number>
     4     {{number2}}<input type="button" value="test" @click="change">
     5 </div>
     6 
     7 Vue.component('number',{
     8         //父组件向子组件传参,存在单向数据流
     9         props:['num2','num3'],//子组件通过props属性接收父组件的传值
    10         template:'<div>子组件---<span>{{count}}--{{number3}}</span></div>',
    11         data:function () {
    12             return{
    13                 //子组件接收父组件的传值,需要在data中重新定义,保证这个传值父子组件不互相影响,起到隔离作用
    14                 count:this.num2,
    15                 number3:this.num3
    16             }
    17         }
    18     });
    19     new Vue({
    20         el:'#app',
    21         data:{
    22             number2:99
    23         },
    24         methods:{
    25             change:function () {
    26                 this.number2 = 100
    27             }
    28         }
    29     })

    父组件向子组件传值,在子组件中先定义属性在传值

    全局组件中通过props以数组方式接收传递的参数

    全局组件中,data方法必须在return中将父组件传过来的参数重新定义成子组件的属性,避免父、子组件传值相互不影响,起到隔离作用

    因为num2和num3是父组件向子组件的传递参数,所以使用this.xxxx引用

  • 相关阅读:
    C#中两数相除为0的原因
    Keil STM32F4xx_DFP.1.0.8.pack下载链接
    LabVIEW入门第九天(数组和簇)
    C#执行文件抛出异常方法
    C#中两数相除为0的原因
    C#判断文件夹路径是否存在并新建
    C#窗体程序随电脑分辨率自动调整大小
    C#判断文件夹路径是否存在并新建
    C#窗体程序随电脑分辨率自动调整大小
    VisualTreeHelper使用之ListBox模板DataTemplate中CheckBox选中项(WP7.1)
  • 原文地址:https://www.cnblogs.com/bugoobird/p/13340034.html
Copyright © 2011-2022 走看看