zoukankan      html  css  js  c++  java
  • 前端学习四(vue基本语法)

    准备工作:

    1、官方文档:https://cn.vuejs.org/v2/guide/

    2、node.js安装,之前学习appium有提到:https://www.cnblogs.com/yinwenbin/p/10853586.html

    3、vue的调试工具 vue-devtools 的安装和使用:https://www.cnblogs.com/chenhuichao/p/11039427.html

    npm install遇到问题,发现上面教程有坑,在clone代码下来后,必须切换到tag v5.1.1  而不是什么master、dev什么的(为什么是这个版本,因为之后稳定的版本都没有shells目录)

    其他:必需要在有使用vue的html上才会在调试的时候显示vue插件

    git  checkout  v.5.1.1

    一、文本填充 和 元素的属性绑定 

    1、引用源

    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>

    2、创建vue对象

     var vue = new Vue({
                    el: "挂载对象",
                    data: {
                        desc: "用来保存数据"
                    },
                    methods: {
                        count: function() {
                            console.log("页面操作要使用的函数")
                        }
                    }

    3、文本填充
      a、插值表达式:{{值}}

    <li>姓名:{{info.name}}</li>

      b、v-text 指令

    <li v-text="info.age"></li>

      c、v-html 指令

    <p v-html="<a href='https://www.baidu.com'>百度</a>"></p>

      d、v-pre 指令,显示原始的数据格式,不会被vue渲染

    <li v-pre>性别:{{info.sex}}</li>

    4、元素属性绑定
      a、v-bind ,可以简写成冒号 :

    <a v-bind:href="a">百度一下,你就知道</a>
    <a :href="a">简写v-bind</a>

      b、事件绑定 v-on 可以简写@

    <button type="button" v-on:click="count()">计算</button>
    <button type="button" @click="count()">计算</button>

      c、数据双向绑定 v-model(绑定的是表单元素 value),默认用户输入的数据当成字符串处理 Vue表单修饰符:lazy,number,trim
        将用户的输入数据转换为数值 v-model.number
        将用户的输入数据去除前后空格 v-model.trim
        数据输入完后才会数据同步 v-model.lazy

    <input type="text" name="a" v-model.number.lazy="aa" />

    示例

    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
            <meta charset="utf-8">
            <!-- 使用vue,必须引用这个 -->
            <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
        </head>
    
        <body>
            <div id="app">
                <ul>
                    <li id="li1">姓名:</li>
                    <li id="li2">年龄:</li>
                    <li id="li3">性别:</li>
                </ul>
    
                <ul>
                    <li>姓名:{{info.name}}</li>
                    <li v-text="info.age">年龄:</li>
                    <li v-pre>性别:{{info.sex}}</li>
                </ul>
                <h4>{{desc}}</h4>
                <p v-html="p"></p>
                
                <!-- 元素属性绑定 v-bind -->
                <a v-bind:href="a">百度一下,你就知道</a>
                <p></p>
                <a :href="a">简写v-bind</a>
                <p></p>
    
                <!-- 数据单向绑定 -->
                <!--             数值A:<input type="text" name="a" :value="aa" />
                <br>
                数值B:<input type="text" name="b" :value="bb" />
                <br> -->
                <!-- 数据双向绑定 -->
                数值A:<input type="text" name="a" v-model.number.lazy="aa" />
                <br>
                数值B:<input type="text" name="b" v-model.number="bb" />
                <!-- 事件绑定v-on -->
                <!-- <button type="button" v-on:click="count()">计算</button> -->
                <button type="button" @click="count()">计算</button>
    
                <h5>结果:{{cc}}</h5>
            </div>
    
            <script>
                // 原始方法js 往页面填充数据
                data = {
                    name: "张三",
                    age: 18,
                    sex: ""
                }
                document.getElementById("li1").innerText = document.getElementById("li1").innerText + data.name
                document.getElementById("li2").innerHTML = document.getElementById("li2").innerHTML + data.age
                document.getElementById("li3").innerHTML = document.getElementById("li3").innerHTML + data.sex
                /*
                一、文本填充
                1、插值表达式{{值}}
                2、v-text 指令
                3、v-html 指令
                4、v-pre  指令,显示原始的数据格式,不会被vue渲染
    
                二、元素的属性绑定
                1、v-bind ,可以简写 : 
                2、事件绑定    v-on    可以简写@
                3、数据双向绑定    v-model(绑定的是表单元素 value),默认用户输入的数据当成字符串处理
                   将用户的输入数据转换为数值    v-model.number
                   将用户的输入数据去除前后空格    v-model.trim
                   数据输入完后才会数据同步        v-model.lazy
                */
                // 初始化一个vue对象
                var vue = new Vue({
                    // el 用来指定挂载对象
                    el: "#app",
                    // data 用来保存数据
                    data: {
                        info: {
                            name: "张三",
                            age: 19,
                            sex: ""
                        },
                        desc: "这是一个标题",
                        p: "<a href='https://www.baidu.com'>百度</a>",
                        a: 'https://www.baidu.com',
                        aa: 11,
                        bb: 22,
                        cc: null
                    },
                    // 页面操作要使用的函数
                    methods: {
                        count: function() {
                            this.cc = this.aa + this.bb
                        }
                    }
                })
            </script>
        </body>
    </html>

    二、条件判断和遍历

    1、v-if、v-else-if、v-else
    符合条件就被渲染出来,v-else是这组判断的结束标志,按pyhton中理解就行。
    2、v-for
    遍历数组元素:v-for='item in cases'
    遍历数组元素和下标:v-for="(item,index) in cases"
    遍历对象值:v-for="item in obj"
    遍历对象key、value(第一个参数是value,第二个参数是key):v-for="(value,key) in obj"

    示例

    <!DOCTYPE html>
    <html>
    
    <head>
        <title></title>
        <meta charset="utf-8">
        <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
    </head>
    
    <body>
        <div id="app">
            <!-- 符合条件就被渲染出来,按pyhton中理解就行 -->
            <div v-if="case_.result=='success'" style="color: green;" id="">{{case_}}</div>
            <div v-else style="color: #FF0000;" id="">{{case_}}</div>
    
            <div v-show="case_.show" id="">显示出来 </div>
    
            <table border="" cellspacing="" cellpadding="">
                <tr>
                    <th>ID</th>
                    <th>用例名</th>
                    <th>结果</th>
                </tr>
    
                <!-- 遍历数组 v-for -->
                <tr v-for='item in cases'>
                    <td>{{item.case_id}}</td>
                    <td>{{item.title}}</td>
                    <td v-if="item.result=='success'" style="color: green;">{{item.result}}</td>
                    <td v-else style="color: red;">{{item.result}}</td>
                </tr>
                <!-- 遍历数组 -->
                <div v-for="(item,index) in cases">{{item}}=={{index}}</div>
                <!-- 遍历对象 -->
                <div v-for="item in obj">{{item}}</div>
                <div v-for="(value,key) in obj">{{key}}=={{value}}</div>
            </table>
        </div>
    
        <script>
            /**
             * v-if
             * v-else-if
             * v-else
             * 
             * v-show ,控制元素的display属性,true、false
             */
    
            var vm = new Vue({
                el: "#app",
                data: {
                    case_: {
                        case_id: 1,
                        title: "用例001",
                        result: "success1",
                        show: false
                    },
                    cases: [{
                        case_id: 1,
                        title: "用例001",
                        result: "success",
                    }, {
                        case_id: 2,
                        title: "用例002",
                        result: "error",
                    }, {
                        case_id: 3,
                        title: "用例003",
                        result: "fail",
                    }],
                    obj: {
                        case_id: 4,
                        title: "用例004",
                        result: "fail",
                    }
                }
            })
        </script>
    </body>
    
    </html>
    一个只会点点点的测试,有疑问可以在测试群(群号:330405140)问我
  • 相关阅读:
    hdu 1716 排列
    codevs 2597 团伙
    创建了一个静态数组,越界访问为什么不报错
    hdu 2083 简易版之最短距离
    hdu 2073 无限的路
    hdu 2060 Snooker
    hdu 1877
    hdu 1042 N!
    hdu 1799 循环多少次?
    百练:2972 确定进制
  • 原文地址:https://www.cnblogs.com/yinwenbin/p/15494339.html
Copyright © 2011-2022 走看看