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>
  • 相关阅读:
    unexpected inconsistency;run fsck manually esxi断电后虚拟机启动故障
    centos 安装mysql 5.7
    centos 7 卸载mysql
    centos7 在线安装mysql5.6,客户端远程连接mysql
    ubuntu 14.04配置ip和dns
    centos7 上搭建mqtt服务
    windows eclipse IDE打开当前类所在文件路径
    git 在非空文件夹clone新项目
    eclipse中java build path下 allow output folders for source folders 无法勾选,该如何解决 eclipse中java build path下 allow output folders for source folders 无法勾选,
    Eclipse Kepler中配置JadClipse
  • 原文地址:https://www.cnblogs.com/binyuanxiang/p/12057687.html
Copyright © 2011-2022 走看看