vue.js

-------------------------hello vue!---------------------------------

<html>
    <head>
        <meta charset="utf-8" />
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <title></title>
    </head>
    <body>
        <div id="only">
            {{xiaoxi}}
        </div>
    </body>
    <script type="text/javascript">
        var myvue = new Vue({
            el:'#only',
            data:{
                xiaoxi:'hello vue'
            }
        })
    </script>
</html>

---------------------v-bind(v的指令)----------------------------

<div id="demo">

  <span v-bind:title="xiaoxi">

    鼠标悬停查看效果!

  </span>

</div>

 

<script type="text/javascript">

  var mydemo = new Vue({

    el:'#demo',

    data:{

      xiaoxi:'页面加载于:' + new date().toLocaleString()

}

})

</script>

---------------------------v-if----------------------------------

<div id="only">

  <span v-if="xiaoxi">

    如果是true就显示!

  </span>

</div>

 

<script type="text/javascript">

  var mydemo = new Vue({

  el:'#only',

  data:{

    xiaoxi:true

}

})

</script>

---------------v-for----------------------------------

<div id="only">

  <ul>

    <li v-for="item in array">

      {{ item.text }}

    </li>

  </ul>

</div>

 

<script type="text/javascript">

  var mydemo = new Vue({

    el:'#only',

    data:{

      array:[

          { text:'1' },

          { text:'2' },

          { text:'3' }

        ]

}

})

</script>

 

或者

<div id="only">

  <ul>

    <li v-for="item in array">

      {{ item}}

    </li>

  </ul>

</div>

 

 

<script type="text/javascript">

  var mydemo = new Vue({

    el:'#only',

    data:{

      array:[ "1","2","3" ]

}

})

</script>

-----------------------v-on----------------------------

<div id="only">

  <span>

    {{ xiaoxi }}

  <span>

  <input type="button" value="点击" v-on:click="dj" />

</div>

<script type="text/javascript">

  var demo = new Vue({

    el:"#only",

    data:{

      xiaoxi:"abcdefg"

}

    methods:{

      dj:function(){

        this.xiaoxi = this.xiaoxi.split('').reverse().join('')

}

}

})

</script>

---------------------v-model(v-model:value)------------------------

<div id="only">

  <p>

    {{xiaoxi}}

  </p>

  <input type="text"  v-model:"xiaoxi" />

</div>

<scirpt type="text/javascript">

  var demo = new Vue({

    el:'#only',

    data:{

      xiaoxi:''

}

})

</script>

---------------------v-bind:class-------------------------------

        <style type="text/css">
            .c1{
                background-color: red;
            }
            .c2{
                background-color: green;
            }
        </style>

 

        <div id="only">
            <span v-bind:class="isactive ? c1 : c2">
                123321
            </span>
        </div>

 

<script type="text/javascript">
        var vm = new Vue({
            el:'#only',
            data:{
                isactive:true,
                c1:'c1',
                c2:'c2'
            }
        })
    </script>

---------------------v-bind:style----------------------------------

        <div id="only">
            <span v-bind:style="instyle">
                123321
            </span>
        </div>

 

<script type="text/javascript">
        var vm = new Vue({
            el:'#only',
            data:{
                instyle:{
                    backgroundColor:'red',
                    fontSize:'25px'
                }
            }
        })
    </script>

--------------Vue.component(定义全局自定义组件)/ template(自定义组件最后返回的内容)--------------------

 <div id="only">
            <zdy-button></zdy-button>
        </div>

<script type="text/javascript">
        Vue.component('zdy-button',{
            data:function(){
                return{
                    zdy:'自定义组件'
                }
            },
            template:'<button>{{zdy}}</button>'
        })
        
        new Vue({el:'#only'})
        
    </script>

---------------------------定义局部自定义组件--------------------------------

<div id="only">
            <zdy-button></zdy-button>
            <zdy-button></zdy-button>
        </div>
        <div id="only2">
            <zdy-button></zdy-button>
        </div>

<script type="text/javascript">
        Vue.component('zdy-button',{
            template:'<p>全局自定义组件</p>'
        })
        new Vue({el:'#only'});
        
        var vm = new Vue({
            el:'#only2',
            components:{
                'zdy-button':{
                    template:'<p><b>局部自定义组件</b></p>'
                }
            }
        })
        
    </script>

---------------------------自定义组件嵌套(<slot />)--------------------------

<div id="only">
            <zdy-head>
                <button slot="left">左</button>
                <zdy-title></zdy-title>
                <button slot="right">右</button>
            </zdy-head>
        </div>

<script type="text/javascript">
        var vm = new Vue({
            el:'#only',
            components:{
                'zdy-head':{
                    template:'<div> <slot name="left" /> 局部自定义head<slot /> <slot name="right" /></div>'
                },
                'zdy-title':{
                    template:'<h2> 局部自定义title </h2>'
                }
            }
        })
    </script>

-------------------------组件动态切换-----------------------------------

 <div id="only">
            <button v-on:click="dj(1)">第1项</button>
            <button v-on:click="dj(2)">第2项</button>
            <button v-on:click="dj(3)">第3项</button>
            <keep-alive>
            <component v-bind:is="nowindex"></component>
            </keep-alive>
        </div>

<script type="text/javascript">
        var vm = new Vue({
            el:'#only',
            data:{
                nowindex:'indexone'
            },
            components:{
                indexone:{
                    template:'<div>组件1:<input type="text" /></div>'
                },
                indextwo:{
                    template:'<div>组件2:<input type="text" /></div>'
                },
                indexthree:{
                    template:'<div>组件3:<input type="text" /></div>'
                }
            },
            methods:{
                dj:function(index){
                    if(index == 1){
                        this.nowindex = 'indexone'
                    }else if(index == 2){
                        this.nowindex = 'indextwo'
                    }else if(index == 3){
                        this.nowindex = 'indexthree'
                    }
                }
            }
        })
    </script>

(ps:<keep-alive></keep-alive>可以保留用户对组件的输入值)

---------------------------------------------

posted on 2018-12-10 22:16  刚出生的小猿  阅读(129)  评论(0)    收藏  举报

导航