zoukankan      html  css  js  c++  java
  • 二、Vue指令

    一、文本指令

    1. v-text
    
    	不能解析html语法的文本,会原样实处。
    
    2. v-html
    
    	不能解析html语法的文本。
    
    3. v-once
    
    	处理的标签的内容只能被解析一次。
    
    	<p v-on:click="pClick" v-once>{{ msg }}</p>
    

    二、事件指令

    1. 语法
    		
    	v-on:事件名=‘方法变量’
    	   
    	@事件名=‘方法变量’
    
    
    2. 同一标签绑定多个事件
    
    	鼠标事件示例
    
    	<body>
    	<div id="app">
    	    <p @mouseover="f1" @mouseout="f2">{{ action }}</p>
    	</div>
    	</body>
    	
    	<script src="js/vue.js"></script>
    	<script>
    	    new Vue({
    	        el: '#app',
    	
    	        data: {
    	            action: '鼠标事件'
    	        },
    	
    	        methods:{
    	            f1 () {
    	                this.action = '悬浮';
    	                console.log('aaaaaaaa')
    	            },
    	            f2 () {
    	                this.action = '离开'
    	            },
    	        }
    	    })
    	</script>
    
    
    3. 给绑定事件传参
    
    	a. 不加括号默认传事件对象:$event
    	
    	b. 加括号表示自己传参,系统不自动传事件对象,可以手动传入事件。
    
    		<p @click="f1($event, 'a')">{{ action }}</p>
    

    三、属性指令

    1. 语法
    		
    	v-bind:属性名=‘变量’
    	   
    	:属性名=‘变量’
    
    
    
    2. class属性绑定方法
    
    
    	a. 变量的值就是类名
    		
    		<p :class="c1"></p>
    	
    	b. 多类名可以用[ ],采用多个变量来控制
    	
    		<p :class="[c1, c2]"></p>
    	
    	c. 选择器可设置为常量
    	
    		<p :class="['d1', c3]"></p>
    		
    	d. {类名:布尔值}控制某类名是否起作用
    	
    		<p :class="['d1', {d2: is_true}]"></p
    	
    	
    3. 调整class属性示例
    	
    	><head>
    	    <meta charset="UTF-8">
    	    <title>Title</title>
    	    <style>
    	        .d1 {
    	             200px;
    	            height: 200px;
    	            background-color: orange;
    	        }
    	        .d2 {
    	            border-radius: 50%;
    	        }
    	        .d3 {
    	            border-radius: 20%;
    	        }
    	    </style>
    	</head>
    	<body>
    	<div id="app">
    	
    	    <p :class="c1"></p>
    	    <p :class="[c1, c2]"></p>
    	    <p :class="['d1', c3]"></p>
    	    <p :class="['d1', {d2: is_true}]" @click="is_true = !is_true"></p>
    	
    	</div>
    	</body>
    	<script src="js/vue.js"></script>
    	<script>
    	    new Vue({
    	        el: '#app',
    	        data: {
    	            c1: 'd1',
    	            c2: 'd2',
    	            c3: 'd3',
    	            is_true: 0,
    	        }
    	    })
    	</script>
    	
    	
    4. style属性绑定方式1
    
    	<body>
    	<div id="app">
    	
    	    <p :style="myStyle">样式属性</p>
    	
    	</div>
    	</body>
    	
    	<script src="js/vue.js"></script>
    	<script>
    	    new Vue({
    	        el: '#app',
    	        data: {
    	            myStyle: {
    	                 '100px',
    	                height: '100px',
    	                backgroundColor: 'red'
    	            }
    	        }
    	    })
    	</script>
    	
    	
    5. style属性绑定方式2
    
    	<body>
    	
    	<div id="app">
    	
    	    <p :style="{ w, height: h, backgroundColor: bgc}">样式属性</p>
    	
    	</div>
    	</body>
    	
    	<script src="js/vue.js"></script>
    	<script>
    	    new Vue({
    	        el: '#app',
    	        data: {
    	            w: '100px',
    	            h: '100px',
    	            bgc: 'red'
    	        }
    	    })
    	</script>
    

    四、表单指令

    1. 语法
    		
    	v-model=‘变量’
    
    
    2. 特点
    
    	a. v-model可实现数据的双向绑定,v-model绑定的变量值可以影响表单标签的值,
    	反过来单标签的值也可以影响变量的值。
    	
    	b. 在选择框中,v-model能确定选择的初始值。
    	
    	
    3. v-model关联input框
    
    	<body>
    	<div id="app">
    	
    	    <input type="text" :value="v1"  v-model="v1">
    	    <input type="text" :value="v1">
    	    {{ v1 }}
    	
    	</div>
    	</body>
    	
    	<script src="js/vue.js"></script>
    	
    	<script>
    	    new Vue({
    	        el: '#app',
    	        data: {
    	            v1: '123'
    	        }
    	    })
    	</script>
    	
    
    4. 在单选框中的应用(value)
    	
    	<body>
    	<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 }}
    	    <hr>
    	    <input type="submit" >
    	</form>
    	</div>
    	</body>
    	
    	<script src="js/vue.js"></script>
    	<script>
    	    new Vue({
    	        el: '#app',
    	        data: {
    	            v1: 'male',
    	        }
    	    })
    	</script>
    
    
    5. 在单一复选框中的应用(布尔值)
    
    	<body>
    	<div id="app">
    	    <form action="">
    	        卖身契:同意 <input type="checkbox" name="agree" v-model="v1">
    	        <hr>
    	        <button type="submit">提交</button>
    	    </form>
    	</div>
    	</body>
    	
    	<script src="js/vue.js"></script>
    	<script>
    	    new Vue({
    	        el: '#app',
    	        data: {
    	            v1: true,
    	        }
    	    })
    	</script>
    	
    
    6. 在多复选框中的应用(数组)
    
    	<body>
    	<div id="app">
    	    <form action="">
    	        性别:<br>
    	        男:<input type="checkbox"  name="gender" value="male" v-model="v1">
    	        女:<input type="checkbox"  name="gender" value="female" v-model="v1">
    	        其他:<input type="checkbox"  name="gender" value="other" v-model="v1">
    	        {{ v1 }}
    	    </form>
    	</div>
    	</body>
    	
    	<script src="js/vue.js"></script>
    	<script>
    	    new Vue({
    	        el: '#app',
    	        data: {
    	            v1: ['male'],
    	        }
    	    })
    	</script>
    

    五、条件指令

    1. 语法
    		
    	a. v-show=‘布尔变量’
    	
    	b. v-if=‘布尔变量’ 
    	
    	
    2. 特点
    
    	a. 用v-show隐藏时,采用display:none进行渲染。
    	
    	b. 用v-if隐藏时,不在页面中渲染。
    
    
    3. 修改v-if参数调整显示的内容
    
    	<head>
    	    <meta charset="UTF-8">
    	    <title>Title</title>
    	    <style>
    	        [v-vloak] {display: none;}
    	        .box {
    	             200px;
    	            height: 200px;
    	        }
    	        .r{background-color: red}
    	        .b{background-color: blue}
    	        .g{background-color: green}
    	
    	    </style>
    	</head>
    	<body>
    	<div id="app" v-cloak>
    	
    	    <div class="wrap">
    	        <div class="box r" v-if="0"></div>
    	        <div class="box b" v-else-if="0"></div>
    	        <div class="box g" v-else></div>
    	    </div>
    	
    	
    	</div>
    	</body>
    	
    	<script src="js/vue.js"></script>
    	<script>
    	    new Vue({
    	        el: '#app',
    	        data: {
    	            is_show: true,
    	        }
    	    })
    	</script>
    	
    	
    4. 用button按钮选择颜色
    
    	<head>
    	    <meta charset="UTF-8">
    	    <title></title>
    	    <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>
    	</head>
    	
    	<body>
    	    <div id="app" v-cloak>
    	        
    	        <div class="wrap">
    	            <div>
    	                <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>
    	</body>
    	
    	<script src="js/vue.js"></script>
    	<script>
    	    new Vue({
    	        el: '#app',
    	        data: {
    	            page: 'r_page'
    	        }
    	    })
    	</script>
    

    六、循环指令

    1. 语法
    		
    	v-for='ele in string|array|obj'
    	
    	
    2. 遍历字符串、数组及对象
    
    	<body>
    	<div id="app">
    	    <i v-for="(c, i) in info">{{ i }}: {{ c }}<br> </i>
    	    <hr>
    	    <div v-for="e in stus">{{ 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>
    	</body>
    	
    	<script src="js/vue.js"></script>
    	<script>
    	    new Vue({
    	        el: '#app',
    	        data: {
    	            info: 'good good study',
    	            stus: ['aaa', 'bbb', 'ccc'],
    	            people: {
    	                name: 'byx',
    	                age: 18,
    	                gender: 'male'
    	            }
    	        }
    	    })
    	</script>
    
    
    
    3. for循环嵌套
    
    	<body>
    	<div id="app">
    	    <div v-for="stu in student">
    	        <span v-for="(v, k, i) in stu"><span v-if="i !== 0"> | </span>{{ k }}:{{ v }}</span>
    	    </div>
    	</div>
    	</body>
    	
    	<script src="js/vue.js"></script>
    	<script>
    	    new Vue({
    	        el: '#app',
    	        data: {
    	            student: [
    	                {
    	                    name: 'a',
    	                    age: 16,
    	                    gender: 'female'
    	                },
    	                {
    	                    name: 'b',
    	                    age: 17,
    	                    gender: 'female'
    	                },
    	                {
    	                    name: 'c',
    	                    age: 18,
    	                    gender: 'male'
    	                }
    	            ]
    	        }
    	    })
    	</script>
  • 相关阅读:
    [学习笔记] numpy次成分分析和PCA降维
    [论文理解]关于ResNet的进一步理解
    [Pytorch] pytorch笔记 <三>
    [pytorch] 官网教程+注释
    [Pytorch] pytorch笔记 <二>
    [图像处理] 直方图均衡化原理
    [Markdown] 数学公式
    [Pytorch] pytorch笔记 <一>
    [pytorch] Pytorch入门
    [Python]面向对象近期笔记-super
  • 原文地址:https://www.cnblogs.com/binyuanxiang/p/12057687.html
Copyright © 2011-2022 走看看