zoukankan      html  css  js  c++  java
  • Vue.js——60分钟快速入门(转)

    vue:Vue.js——60分钟快速入门

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            * {
                margin: 0;
                padding: 0;
                box-sizing: border-box
            }
    
            html {
                font-size: 12px;
                font-family: Ubuntu, simHei, sans-serif;
                font-weight: 400
            }
    
            body {
                font-size: 1rem
            }
    
            table, td, th {
                border-collapse: collapse;
                border-spacing: 0
            }
    
            table {
                width: 100%
            }
    
            td, th {
                border: 1px solid #bcbcbc;
                padding: 5px 10px
            }
    
            th {
                background: #42b983;
                font-size: 1.2rem;
                font-weight: 400;
                color: #fff;
                cursor: pointer
            }
    
            tr:nth-of-type(odd) {
                background: #fff
            }
    
            tr:nth-of-type(even) {
                background: #eee
            }
    
            fieldset {
                border: 1px solid #BCBCBC;
                padding: 15px;
            }
    
            input {
                outline: none
            }
    
            input[type=text] {
                border: 1px solid #ccc;
                padding: .5rem .3rem;
            }
    
            input[type=text]:focus {
                border-color: #42b983;
            }
    
            button {
                outline: none;
                padding: 5px 8px;
                color: #fff;
                border: 1px solid #BCBCBC;
                border-radius: 3px;
                background-color: #009A61;
                cursor: pointer;
            }
    
            button:hover {
                opacity: 0.8;
            }
    
            #app {
                margin: 0 auto;
                max-width: 640px
            }
    
            .form-group {
                margin: 10px;
            }
    
            .form-group > label {
                display: inline-block;
                width: 10rem;
                text-align: right;
            }
    
            .form-group > input, .form-group > select {
                display: inline-block;
                height: 2.5rem;
                line-height: 2.5rem;
            }
    
            .text-center {
                text-align: center;
            }
    
            .pagination {
                display: inline-block;
                padding-left: 0;
                margin: 21px 0;
                border-radius: 3px;
            }
    
            .pagination > li {
                display: inline;
            }
    
            .pagination > li > a {
                position: relative;
                float: left;
                padding: 6px 12px;
                line-height: 1.5;
                text-decoration: none;
                color: #009a61;
                background-color: #fff;
                border: 1px solid #ddd;
                margin-left: -1px;
                list-style: none;
            }
    
            .pagination > li > a:hover {
                background-color: #eee;
            }
    
            .pagination .active {
                color: #fff;
                background-color: #009a61;
                border-left: none;
                border-right: none;
            }
    
            .pagination .active:hover {
                background: #009a61;
                cursor: default;
            }
    
            .pagination > li:first-child > a .p {
                border-bottom-left-radius: 3px;
                border-top-left-radius: 3px;
            }
    
            .pagination > li:last-child > a {
                border-bottom-right-radius: 3px;
                border-top-right-radius: 3px;
            }
        </style>
    </head>
    <body>
    <!--这是我们的View-->
    <div id="app">
        <p>{{ message }}</p>
        <input type="text" v-model="message" title="">
        <h3>Hello, Vue.js!</h3>
        <h3 v-if="yes">Yes!</h3>
        <h3 v-if="no">No!</h3>
        <h3 v-if="name.indexOf('jack') >= 0">Name: {{ name }}</h3>
        <!-- v-if 是条件渲染指令,它根据表达式的真假来删除和插入元素 -->
        <h1 v-if="age >= 30">Age: {{ age }}</h1>
        <h3 v-else>Age: {{ age }}</h3>
        <!-- v-show 指令的元素始终会被渲染到HTML,它只是简单地为元素设置CSS的style属性 -->
        <h1 v-show="age >= 20">Age: {{ age }}</h1>
    
        <br>
        <br>
    
        <table>
            <thead>
            <tr>
                <th>Name</th>
                <th>Age</th>
                <th>Sex</th>
            </tr>
            </thead>
            <tbody>
            <tr v-for="person in people">
                <td>{{ person.username }}</td>
                <td>{{ person.age }}</td>
                <td>{{ person.sex }}</td>
            </tr>
            </tbody>
        </table>
    
        <br>
        <br>
    
        <!-- v-bind指令可以缩写为一个冒号 -->
        <ul class="pagination">
            <!-- pageCount是一个整数,遍历时n从1开始 -->
            <li v-for="n in pageCount">
                <a href="javascript:void(0)" v-bind:class="activeNumber === n ? 'active' : ''">{{ n }}</a>
            </li>
        </ul>
    
        <br>
        <br>
    
        <!-- v-on指令可以缩写为@符号 -->
        <p>
            <!--click事件直接绑定一个方法-->
            <button v-on:click="greet">Greet</button>
        </p>
        <p>
            <!--click事件使用内联语句-->
            <button v-on:click="say('Hi')">Hi</button>
        </p>
    
        <br>
        <br>
    
        <fieldset>
            <legend>
                Create New Person
            </legend>
            <div class="form-group">
                <label>Name:</label>
                <input type="text" v-model="newPerson.username"/>
            </div>
            <div class="form-group">
                <label>Age:</label>
                <input type="text" v-model="newPerson.age"/>
            </div>
            <div class="form-group">
                <label>Sex:</label>
                <select v-model="newPerson.sex">
                    <option value="Male">Male</option>
                    <option value="Female">Female</option>
                </select>
            </div>
            <div class="form-group">
                <label></label>
                <button @click="createPerson">Create</button>
            </div>
        </fieldset>
        <table>
            <thead>
            <tr>
                <th>Name</th>
                <th>Age</th>
                <th>Sex</th>
                <th>Delete</th>
            </tr>
            </thead>
            <tbody>
            <tr v-for="(person,index) in people">
                <td>{{ person.username }}</td>
                <td>{{ person.age }}</td>
                <td>{{ person.sex }}</td>
                <td :class="'text-center'">
                    <button @click="deletePerson(index)">Delete</button>
                </td>
            </tr>
            </tbody>
        </table>
    
        <br>
        <hr>
    </div>
    </body>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <script>
        // 这是我们的Model
        let exampleData = {
            message: 'Hello World!',
            yes: true,
            no: false,
            age: 28,
            name: 'keepfool',
            people: [{
                username: 'Jack',
                age: 30,
                sex: 'Male'
            }, {
                username: 'Bill',
                age: 26,
                sex: 'Male'
            }, {
                username: 'Tracy',
                age: 22,
                sex: 'Female'
            }, {
                username: 'Chris',
                age: 36,
                sex: 'Male'
            }],
            activeNumber: 1,
            pageCount: 10,
            newPerson: {
                name: '',
                age: 0,
                sex: 'Male'
            }
        };
    
        // 创建一个 Vue 实例或 "ViewModel"
        // 它连接 View 与 Model
        // 每个Vue实例都会代理其选项对象里的data属性
        var vm = new Vue({
            el: '#app',
            data: exampleData,
            // 在 `methods` 对象中定义方法
            methods: {
                greet: function () {
                    // 方法内 `this` 指向 vm
                    alert(this.message)
                },
                say: function (msg) {
                    alert(msg)
                },
                createPerson: function () {
                    this.people.push(this.newPerson);
                    // 添加完newPerson对象后,重置newPerson对象
                    this.newPerson = {username: '', age: 0, sex: 'Male'}
                },
                deletePerson: function (index) {
                    // 删一个数组元素
                    this.people.splice(index, 1);
                }
            }
        })
    </script>
    </html>

     推荐安装谷歌插件 vue-devtools 

  • 相关阅读:
    C语言中const关键字的用法
    LDO和DC-DC的概念,区别及优缺点
    Ubuntu下几个命令行方式使用的图片浏览工具
    I2C和I2S的区别和使用方法
    scikit-image 图像处理库介绍
    USB协议介绍
    Ubuntu 16.04 python和OpenCV安装
    一种基于python的人脸识别开源系统
    numpy 介绍
    python enumerate用法总结
  • 原文地址:https://www.cnblogs.com/cshaptx4869/p/10718620.html
Copyright © 2011-2022 走看看