vuejs--基本指令2

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/RyleeLouth/article/details/102758137

v-model 收集表单信息

  • checkbox

1,单个复选框
复选框选中为true,否则为false
模型变量属性值为布尔类型

<body>
<div>
    <input type="checkbox" v-model="isAgree">{{ isAgree ? '同意':'不同意' }}
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    var vm=new Vue({
        el:'div',
        data:{
            isAgree:'true'
        }
    })
</script>
</body>

2,多个复选框,例如选择兴趣爱好的时候,这个时候复选框里面要有一个value,模型里面要有一个数组去接收选中的值

<body>
<div>
    爱好:<input type="checkbox" value="basketball" v-model="hobby">篮球
          <input type="checkbox" value="football" v-model="hobby">足球
          <input type="checkbox" value="swimming" v-model="hobby">游泳
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    var vm=new Vue({
        el:'div',
        data:{
            hobby:[]
        }
    })
</script>
</body>
  • radio单选框

1 radio里面要有value值,因为选中是可以获取它的value值
2,模型变量是一个普通字符串,就是其中一个value值

 <body>
<div>
    性别:<input type="radio" value="male" v-model="gender"><input type="radio" value="female" v-model="gender"></div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    var vm=new Vue({
        el:'div',
        data:{
            gender:'male'
        }
    })
</script>
</body>
  • select 下拉框

1,只能选中单个选项,
关于value值:有value:收集value值
没有value值,收集标签之间的数据

<body>
<p>
    <select name="" id="" v-model="area">
        <option value="北京">北京</option>
        <option value="上海">上海</option>
        <option value="广州">广州</option>
    </select>
</p>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    var vm = new Vue({
        el: "p",
        data: {
            area:"北京"
        }
    })
</script>
</body>

2,可选多个选项
模型变量是一个数组,去接收选中的值

<body>
<p>
    <select name="" id="" v-model="area" multiple>
        <option value="北京">北京</option>
        <option value="上海">上海</option>
        <option value="广州">广州</option>
    </select>
</p>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    var vm = new Vue({
        el: "p",
        data: {
            area:[]
        }
    })
</script>
</body>

v-bind 给标签的属性进行值的设定,简写为:

  • img标签的src属性

      1,直接写插值表达式,会把引号里面的内容当成地址尝试进行网络请求
    
		< img src=" {{ logo }}"/ >
	正确写法

html:
注意:1,引号里面不要再写插值表达式了
-------- 2,如果用v-bind ,非要在src里面写网址的话,要给网址加上引号,而且外双内单,外单内双

< img v-bind:src=" logo "/ >

或者

<img v-bind:src="'https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1572080530&di=e6d15890a33a96d1acfda455dafbd2d5&src=http://www.krabiandamantour.com/images/krabitour/4islands-koh-hong-by-speedboat/koh-tup-(tup-Island)-talay-waek-krabi-Islands-1.jpg '">

js:

<script>
    var vm = new Vue({
        el: "p",
        data: {
            logo:'https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1572080530&di=e6d15890a33a96d1acfda455dafbd2d5&src=http://www.krabiandamantour.com/images/krabitour/4islands-koh-hong-by-speedboat/koh-tup-(tup-Island)-talay-waek-krabi-Islands-1.jpg'
        }
    })
</script>

  • 设置class类名

      **设置单个类名**
    
<p v-bind:class="class1"></p>

js:

<script>
    var vm = new Vue({
        el: "p",
        data: {
            class1:'a'
        }
    })
</script>
**设置多个类名**

html:标签里面class中有一个数组去接收所有类名

 <p v-bind:class="[class1,class2,class3]"></p>
有多个class名还有一个字符串:class会合并
 <p v-bind:class="[class1,class2,class3,'d' ]"></p>//有a,b,c,d四个class名
本身有class属性,再绑定别的class可以合并
 <p class="d" v-bind:class="[class1,class2,class3]"></p>//有d,a,b,c四个class名
js:这里写多个class名
 data: {
            class1:'a',
            class2:'b',
            class3:'c'
        }
  • 设置行内样式style

      设置单个style属性:模型变量里面style可以为字符串,也可以为对象
    

    <p v-bind:style="style1"></p>
    <p v-bind:style="style2"></p>
设置多个style属性:模型变量必须为对象,style里面有一个数组
 <p v-bind:style="[style2,style3]"></p>
font-size等用中横线分割的属性有两种方法书写,
1.冒号两边的属性和属性值都用引号包起来2.使用小驼峰命名属性名
 <p v-bind:style="style4"></p>
    <p v-bind:style=" style5"></p>
	直接在标签里面写,要写在对象里面,而且不同属性用逗号隔开
	<p v-bind:style="{fontSize:'30px',lineHeight:'18px'}"></p>

js:

 data: {
            style1:'bacground:#ccc',
            style2:{
                background:"red"
            },
            style3:{
            	border:"1px solid #ccc"
            },
             style4:{
                'font-size':'18px'
            },
            style5:{
                fontSize:'18px'
            }
       
        }

v-on 事件绑定,简写为@

  • 原生js中事件书写函数调用是要写括号的

<button onclick="fn()">点击</button>//函数调用是要写括号的
  • v-on 中

    • 函数调用可以不写括号,也可以写
    • 使用v-on 不要再事情前面加上on
 <button v-on:click="fn1">点我</button>
   <button v-on:click="fn2()">点我</button>
  • 加括号和不加括号的区别

      +加括号:需要手动添加$event 事件源,$event是vuejs帮我们封装好的事件源
      +不加括号:会自动给回调函数传递一个事件源
      如何取舍?
      当需要传参时选择加括号的,不需要传参时选择不加括号的
    
  • v-on 调用时需要传参

    +1,…rest是剩余运算符,可以将所传参数以数组的形式展开
    +2, 剩余运算符只能写在最后面
<button v-on:click="fn1">点我</button>
<button v-on:click="fn2($event,'a','b')">点我</button>

js:

methods:{
                fn1(event){
                    console.log(event)//MouseEvent {isTrusted: true, screenX: 85, screenY: 103, clientX: 85, clientY: 32, …}
                },
                fn2(event,...rest){
                    console.log(event)//MouseEvent {isTrusted: true, screenX: 85, screenY: 103, clientX: 85, clientY: 32, …}
                    console.log(rest)//["a", "b"]
            	}
        }

猜你喜欢

转载自blog.csdn.net/RyleeLouth/article/details/102758137