zoukankan      html  css  js  c++  java
  • Vue组件

    gitHub地址:https://github.com/manlili/vue_learn里面lesson12

    一创建组建的步骤

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Vue组件</title>
            <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
            <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
        </head>
        <body>
            <div class="test">
                <zujian></zujian>
            </div>
            <script type="text/javascript">
                var myComponent = Vue.extend({   //第一步:定义
                    template: '<div>我是内容</div>'
                })
                
                Vue.component('zujian',myComponent)  //第二步:注册到Vue上面
                
                var myVue = new Vue({    //第三步:创建实例化
                    el: '.test'
                })
            </script>
        </body>
    </html>

    或者用一种简单的方法创建组件

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Vue组件</title>
            <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
            <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
        </head>
        <body>
            <template id="lili-template"> <!--注意此处必须是id,用class不行-->
                <div>我是内容2</div>
            </template>
            <div class="test">
                <zujian></zujian>
            </div>
            <script type="text/javascript">
                var myVue = new Vue({
                    el: '.test',
                    components: {
                        zujian: {
                            template: '#lili-template'
                        }
                    }
                })
            </script>
        </body>
    </html>

    二 父子组件

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Vue组件--父子组件</title>
            <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
            <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
        </head>
        <body>
            <div class="test"> <!--局部注册-->
                <zujian></zujian>
            </div>
            <script type="text/javascript">
                var childComponent = Vue.extend({   //第一步:定义
                    template: '<div class="mychild">我是孩子</div>'
                });
                var parentComponent = Vue.extend({
                    template: '<div class="myParent">我是父容器<child></child></div>',  //注意此处要引用孩子组件
                    components: {
                        'child': childComponent
                    }
                });
                Vue.component('zujian',parentComponent);  //第二步:注册到Vue上面
                
                var myVue = new Vue({    //第三步:创建实例化
                    el: '.test'
                })
            </script>
        </body>
    </html>

    或者另一种比较明了的写法:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Vue组件--父子组件另一种写法</title>
            <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
            <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
        </head>
        <body>
            <div class="test">
                <zujian></zujian>
            </div>
            <template id="parentComponent">
                <div class="myParent">
                    我是父容器
                    <child></child>
                </div>
            </template>
            
            <template id="childComponent">
                <div class="mychild">
                    我是孩子
                </div>
            </template>
            
            <script type="text/javascript">
                
                var myVue = new Vue({ 
                    el: '.test',
                    components: {
                        zujian: {
                            template:'#parentComponent',
                            components: {
                                child: {
                                    template:'#childComponent'
                                }
                            }
                        }
                    }
                })
            </script>
        </body>
    </html>

    三 Vue组件选项

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Vue组件--组件选项</title>
            <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
            <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
        </head>
        <body>
            <div class="test">
                <div class="lala">
                    <zujian></zujian>
                </div>
            </div>
            <script type="text/javascript">
                var myComponent = Vue.extend({   
                    template: '<div>我是{{a}}{{b}}</div>',
                    data : function () {   //不想让MyComponent 所有的实例将共享同一个 data 对象,所以将data写成函数形式返回
                        return {
                            a: 1,
                            b: 2
                        }
                    },
                    el: function () {   //不想让MyComponent 所有的实例将共享同一个 el 对象,所以将el写成函数形式返回
                        return ".lala"
                    }
                })                    
                var myVue = new Vue({
                    el: '.test',
                    components: {
                        zujian:myComponent
                    }
                })
            </script>
        </body>
    </html>

    四 Vue组件作用域(父子通信)

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Vue组件--组件作用域</title>
            <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
            <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
        </head>
        <body>
            <!-- 子组件模板 -->
            <template id="child-template">
              {{msg1}}
            </template>
            
            <!-- 父组件模板 -->
            <div id="events-example">
              <p>Messages: {{ messages | json }}</p>
              <child :msg1="mssss">
                  
              </child>
            </div>
            
            <script type="text/javascript">
    
                var parent = new Vue({
                  el: '#events-example',
                  data: {
                    messages: '我是父框架222',
                    mssss: 'ddddddd'
                  },
                  components: {
                      child: {
                          template: '#child-template',
                          props: {msg1: String }
                        }
                  }
                })
            </script>
        </body>
    </html>
  • 相关阅读:
    sql-server数据库中利用触发器实现表与表之间的级联删除
    求任意长度数组的最大值(整数类型)。利用params参数实现任意长度的改变。
    params参数的调用
    C# 参考之方法参数关键字:params、ref及out
    写一个方法求数组中的最大值,最小值,总和以及平均值。
    写一个方法来解析一元二次方程。
    创建一个方法来判断是否为闰年。。
    构造方法
    总结重写和重载区别
    DelegatingActionProxy
  • 原文地址:https://www.cnblogs.com/lily1010/p/5884381.html
Copyright © 2011-2022 走看看