Vue

表单指令

普通

变量代表value值

<div id="app">
    <form action="">
        <!--三个v1双向绑定,同时变化-->
        <input type="text" name="user" v-model="v1">
        <input type="text" name="age" v-model="v1">
        {{ v1 }}
    </form>
</div>
<script>
    new Vue({
        el:'#app',
        data:{
            v1:'123'  // v1的默认值
        }
    })
</script>

单选框

变量为多个单选框中的某一个value值

<div id="app">
    <form action="">
        <input type="radio" name="sex" value="male" v-model="v1">
        <input type="radio" name="sex" value="female" v-model="v1">
        {{ v1 }}
    </form>

<script>
    new Vue({
        el:'#app',
        data:{
            v1:'male' // 默认值
        }
    })
</script>

单一复选框

变量为布尔,代表是否选中

<form action="">
       卖身契:同意 <input type="checkbox" name="agree" v-model="v3">
        {{ v3 }}
</form>
<script>
    new Vue({
        el:'#app',
        data:{
           
            v3: false,  // 默认值,可以传除true/false以外的值,但是在选择后还是会变为true/false;
        }
    })
</script>

多复选框

变量为数组,存放选中的选项的value

 <form action="">
       爱好:<br>
        男:<input type="checkbox" name="hobbies" value="male" v-model="v4">
        女:<input type="checkbox" name="hobbies" value="female" v-model="v4">
        哇塞:<input type="checkbox" name="hobbies" value="other" v-model="v4">
        {{ v4 }}
    </form>
<script>
    new Vue({
        el:'#app',
        data:{
           v4: ['male', 'female'], // 默认值,实际顺序按照选择的先后
        }
    })
</script>

条件指令

<style>
    [v-cloak] { display: none; }

    .box {
         200px;
        height: 200px;
    }
    .r {background-color: red}
    .b {background-color: blue}
    .g {background-color: green}

    .active {
        background-color: deeppink;
    }
</style>
<div id="app" v-cloak>
        <!--条件指令:
            v-show="布尔变量"   隐藏时,采用display:none进行渲染
            v-if="布尔变量"     隐藏时,不再页面中渲染(保证不渲染的数据泄露)
            -----------------------------
            v-if | v-else-if | v-else
        -->
    	<!--当is_show为false时,第一个div不能在检查中看到,第二个看不到-->
        <div class="box r" v-show="is_show"></div>  
        <div class="box b" v-if="is_show"></div>
        <hr>

        <div class="wrap">
            <div>
                <!--绑定点击事件:给page赋不同的值-->
                <button @click="page='r_page'" :class="{active: page === 'r_page'}">红</button> 
                <button @click="page='b_page'" :class="{active: page === 'b_page'}">蓝</button>
                <button @click="page='g_page'" :class="{active: page === 'g_page'}">绿</button>
            </div>
            <div class="box r" v-if="page === 'r_page'"></div>
            <div class="box b" v-else-if="page === 'b_page'"></div>
            <div class="box g" v-else></div>
        </div>

    </div>
<script>
    new Vue({
        el: '#app',
        data: {
            is_show: false,
            page: 'r_page' // page的默认值,即默认选中第一个按钮
        }
    })
</script>

循环指令

for循环的对象可以是字符串、数组或自定义对象;
当for循环对象是字符串或数组时,可以拿到两个参数,(value,index)
当for循环对象是自定义对象时,可以拿到三个参数,(value,key,index)
<div id="app">
        <!--循环指令:
            v-for="ele in string|array|obj"
        -->
        <span>{{ info }}</span>
        <hr>
        <i v-for="c in info">{{ c }} </i>
        <hr>
        <i v-for="(c, i) in info">{{i}}:{{c}}<br></i>
        <hr>

        <div v-for="e in stus">{{ e }}</div>
        <hr>
        <div v-for="(e, i) in stus">{{ i }}:{{ e }}</div>
        <hr>

        <div v-for="v in people">{{ v }}</div>
        <hr>
        <div v-for="(v, k, i) in people">{{ i }} - {{ k }}:{{ v }}</div>
        <hr>

        <div v-for="tea in teas">
            <span v-for="(v, k, i) in tea"><span v-if="i !== 0"> | </span>{{ k }}:{{ v }}</span>
        </div>

       
    </div>
<script>
    new Vue({
        el: '#app',
        data: {
            info: 'good good study',
            stus: ['Bob', 'Tom', 'Jerry'],
            people: {
                name: '猴子',
                age: 36.7,
                sex: '女',
            },
            teas: [
                {
                    name: 'jason',
                    age: 73,
                    sex: '男',
                },
                {
                    name: 'egon',
                    age: 74,
                    sex: '男',
                },
                {
                    name: 'owen',
                    age: 17.5,
                    sex: '男',
                }
            ]
        }
    })
</script>

前端数据库

缓存数据库sessionStorage和本地数据库localStorage

sessionStorage只是暂时存储,当网页关闭后,数据就消失;localStorage是永久存储数据在浏览器上。

可以在网页检查的application上查看

分隔符(了解)

<div id='app'>
    ${ msg }
</div>
<script>
    new Vue({
    	el: '#app',
    	data: {
    		msg: 'message'
    	},
        delimiters: ['${', '}']  // 渠道之间的变量名(字符串)
    })
</script>

过滤器

<div id="app">
    <div id="app">
        <!--
        总结:
        1、在filters成员中定义过滤器方法
        2、可以对多个值进行过滤,过滤时还可以额外传入辅助参数
        3、过滤的结果可以再进行下一次过滤(过滤的串联)
        -->
        <p>{{ num | f1 }}</p>
        <p>{{ a, b | f2(30, 40) | f3 }}</p>
    </div>
</div>
<script>
   new Vue({
        el: '#app',
        data: {
            num: 10,
            a: 10,
            b: 20,
        },
        filters: {
            // 传入所有要过滤的条件,返回值就是过滤的结果
            f1 (num) {
                console.log(num);
                return num * 10;
            },
            f2 (a, b, c, d) {
                console.log(a, b, c, d);
                return a + b + c + d+50;
            },
            f3 (num) {
                return num * num;
            }
        }
    })
</script>

计算属性

<div id="app">
 	<input type="text" v-model="a">
    <input type="text" v-model="b">
    <div>
        {{ c }}  <!--根据用户输入的a和b实时拼接-->
    </div>
</div>


<script>
	// 一个变量依赖于多个变量
    new Vue({
        el: "#app",
        data: {
            a: "",
            b: "",
        },
        computed: {  // 方法内部出现的变量会被监听,变量变化会调用方法
            c: function() {
                // this代表该vue实例
                return this.a + this.b;
            }
        }
    })
    // 方法属性必须在页面中渲染,才会启用绑定的方法,方法属性的值就是绑定方法的返回值
</script>

监听属性

<div id="app">
 	<input type="text" v-model="ab">
    <div>
        {{ a }}
        {{ b }}
    </div>
</div>
<script>
	// 多个变量依赖于一个变量
    new Vue({
        el: "#app",
        data: {  //监听的属性需要在data中声明,
            ab: "",
            a: "",
            b: "",
        },
        watch: {  // 监听的方法名就是方法名
            ab: function(n,o) {  // n是被监听属性当前的值,o是被监听属性上一次的值;被监听的属性变化会触发方法
                // 逻辑根据需求而定
                this.a = this.ab[0];
                this.b = this.ab[1];
                // 不需要返回值
            } 
        }
    })
</script>

冒泡排序

for (let i=0; i<arr.length-1; i++) {  // 趟数
        for (let j=0; j<arr.length-1-i; j++) {  // 比较次数
            // 处理条件即可
            if (arr[j]参数 > stus[j + 1]参数) {
                let temp = stus[j];
                stus[j] = stus[j + 1];
                stus[j + 1] = temp;
            }
        }
    }

原文地址:https://www.cnblogs.com/shenblog/p/12057499.html