Add some vue books/docs.
This commit is contained in:
		
							
								
								
									
										80
									
								
								vue/chapter6.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								vue/chapter6.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,80 @@
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
 | 
			
		||||
    <title>Horse-drawn Chariots</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
<div class="container">
 | 
			
		||||
    <h1>Chariot shopping</h1>
 | 
			
		||||
    <ul class="list-group">
 | 
			
		||||
        <!-- '.sync' ensures two-way binding between child's property and parent's one -->
 | 
			
		||||
        <chariot v-for="chariot in chariots" :chariot="chariot" :selected.sync="selected"></chariot>
 | 
			
		||||
    </ul>
 | 
			
		||||
    <pre>{{ $data | json }}</pre>
 | 
			
		||||
</div>
 | 
			
		||||
<!-- component template -->
 | 
			
		||||
<template id="chariot-template">
 | 
			
		||||
    <li class="list-group-item">
 | 
			
		||||
        <h4>"{{ chariot.name }}" chariot has <strong>{{ chariot.horses }}</strong> horse(s)!</h4>
 | 
			
		||||
        <!-- 'disabled' attribute is applied conditionally -->
 | 
			
		||||
        <button @click="rideChariot(chariot)" class="btn btn-primary" :disabled="isSelectedChariot">
 | 
			
		||||
            {{ action }}
 | 
			
		||||
        </button>
 | 
			
		||||
    </li>
 | 
			
		||||
</template>
 | 
			
		||||
<!-- end component template -->
 | 
			
		||||
</body>
 | 
			
		||||
<script src="http://cdnjs.cloudflare.com/ajax/libs/vue/1.0.26/vue.js"></script>
 | 
			
		||||
<script type="text/javascript">
 | 
			
		||||
    Vue.component('chariot', {
 | 
			
		||||
        props: ['chariot', 'selected'],
 | 
			
		||||
        template: "#chariot-template",
 | 
			
		||||
        methods: {
 | 
			
		||||
            rideChariot: function (chariot) {
 | 
			
		||||
                this.selected = chariot;
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        computed: {
 | 
			
		||||
            //is true when the chariot has more horses than the selected one
 | 
			
		||||
            hasMoreHorses: function () {
 | 
			
		||||
                return this.selected.horses < this.chariot.horses
 | 
			
		||||
            },
 | 
			
		||||
            //is true when the chariot is the selected one
 | 
			
		||||
            isSelectedChariot: function () {
 | 
			
		||||
                return this.selected.name == this.chariot.name
 | 
			
		||||
            },
 | 
			
		||||
            //is true when there is no chariot selected
 | 
			
		||||
            noChariot: function () {
 | 
			
		||||
                return this.selected.name == null;
 | 
			
		||||
            },
 | 
			
		||||
            //define the action for each chariot
 | 
			
		||||
            action: function () {
 | 
			
		||||
                if (this.noChariot) {
 | 
			
		||||
                    action = 'Pick Chariot'
 | 
			
		||||
                } else if (this.isSelectedChariot) {
 | 
			
		||||
                    action = 'Riding!'
 | 
			
		||||
                } else if (this.hasMoreHorses) {
 | 
			
		||||
                    action = 'Hire Horses'
 | 
			
		||||
                } else {
 | 
			
		||||
                    action = 'Dismiss Horses'
 | 
			
		||||
                }
 | 
			
		||||
                return action;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
    var vm = new Vue({
 | 
			
		||||
        el: 'body',
 | 
			
		||||
        data: {
 | 
			
		||||
            chariots: [
 | 
			
		||||
                {name: "Olympus", horses: 4},
 | 
			
		||||
                {name: "Sagitta", horses: 3},
 | 
			
		||||
                {name: "Icarus", horses: 2},
 | 
			
		||||
                {name: "Abraxas", horses: 1},
 | 
			
		||||
            ],
 | 
			
		||||
            //the currently selected 'chariot'
 | 
			
		||||
            selected: {}
 | 
			
		||||
        },
 | 
			
		||||
    })
 | 
			
		||||
</script>
 | 
			
		||||
</html>
 | 
			
		||||
		Reference in New Issue
	
	Block a user