vue指令学习一

内容渲染指令---v-text

  • 内容渲染指令,当作属性来用
  • 缺点是会覆盖元素内原有内容
<div id="app">
	<p v-text="username"></p>
	<p v-text="gender"></p>
</div>
const vm=new Vue({
	el:"#app",
	data:{
    	username:"zhangsan",
    	gender:"女"
    }
})

内容渲染指令---{{}}

  • {{}} 插值表达式在项目中用的最多,不会覆盖或者修改原有内容,只是一个占位符
<div id="app">
	<p>姓名:{{ username }}</p>
	<p>性别:{{ gender }}</p>
</div>
const vm =new Vue({
	el:"#app",
	data:{
    	username:"zhangsan",
    	gender:"女"
    }
})

内容渲染指令---v-html

  • v-html指令可以将带标签的内容渲染成真正的HTML内容
<div id="app" v-html="info"></div>
const vm =new Vue({
	el:"#app",
	data:{
    	info:"<h4 style="color:red;font-weight:blod;">带标签内容</h4>"
    }
})

属性绑定指令---v-bind

  • v-bind指令可以为元素的属性动态绑定值,可以简写成 ':'
  • 使用期间,绑定内容需要动态拼接,绑定的内容需要加一个单引号''
<div id="app" >
	<input :placeholder:"'input'+tips">
</div>
const vm =new Vue({
	el:"#app",
	data:{
    	tips:"默认内容"
    }
})

事件绑定指令---v-on

  • v-on指令可以为事件绑定函数,可以简写成 '@'
  • 使用期间,绑定事件需要设置对应参数,绑定的事件需要加一个变量$event 表示e
<div i='app'>
	<p> count 的值为:{{ count }}</p>
	<button @:click='add(3,$event)'>+3</button>
</div>
const vm=new Vue({
	el:'#app',
	data:{
    	count:0
    },
	methods:{
    	add(n,e){
        	count+=n
        	if(this.count %2 == 0){
            	e.target.backgroundColor='red'
            }else{
            	e.target.backgroundColor='blue'
            }
        
        }
    }

})
  • 事件修饰符 .prevent .stop .capture .once .self
<a herf='' @:click.prevent='show'></a>

vue指令学习二

双向绑定指令---v-model

  • 只能应用到表单元素里,例如select、textarea、select
<select v-model='city'>
	<option value=''>请选择城市</option>
    <option value='1'>徐州</option>
    <option value='2'>北京</option>
    <option value='3'>上海</option>
</select>
data:{
	city:''
    }
  • v-model的专属修饰符 .number(转为数值类型) .trim(过滤首位空白字符) .lazy(change时更新)

条件渲染指令 ---v-if v-show

  • v-if通过创建去除元素来修改样式 初始是false,一般不展示用v-if更好
  • v-show通过修改display来修改,频繁修改v-show更好
<div id="username">
        <p v-if="type==='A'">受到 v-if 控制的A语句</p>
        <p v-else-if="type==='B'">受到 v-if 控制的B语句</p>
        <p v-else="type==='C'">受到 v-if 控制的C语句</p>
        <p v-show="flag">受到 v-show 控制的语句</p>
</div>
	data:{
                flag:true,
                type:"A"
            }

循环渲染指令 --- v-for

  • v-for 需要在后边加:key='id' key需要唯一值,不能是index
 			<tbody>
                <tr v-for="item in list":key='item.id'  :title="item.username">
                    <td>{{ item.index }}</td>
                    <td>{{ item.id }}</td>
                    <td>{{ item.username }}</td>
                </tr>
            </tbody>
		data:{
                list:[
                    {index:'1',id:'001',username:'1111'},
                    {index:'2',id:'002',username:'2222'}
                ]
            }