Vue入门第3天------模板语法(二)

男娘i 2023-07-10 12:39 112阅读 0赞

一、属性绑定

1.1 Vue如何动态处理属性

1.2 v-model的底层实现原理分析

  1. <input v-bind:value='msg' v-on:input="msg=$event.target.value">

注意:实际上底层原理就是
:用v-bind来绑定value值,v-on:去绑定input标准事件,input这个事件用来监听输入域内容,当内容发生变化的时候,通过$event获取到输入域的最新的值,之后把最新的值赋值给原来的msg,从而实现了数据的更新,完成了双向数据绑定。但是实际开发中我们还是会使用v-model来实现双向绑定。

二、样式绑定

2.1 class样式处理

  • 对象语法

这里的active是类名,is后要加类名,并且isActive有两个取值:true、false

例子:

  1. <style>
  2. .active{
  3. border: 1px solid red;
  4. width: 100px;
  5. height: 100px;
  6. }
  7. .error{
  8. background-color:orange;
  9. }
  10. </style>
  11. <div id="app">
  12. <div v-bind:class="{active: isActive,error:isError}">
  13. 测试样式
  14. </div>
  15. <button v-on:click="handle">切换</button>
  16. </div>
  17. <script src="js/vue.min.js"></script>
  18. <script>
  19. var vm = new Vue({
  20. el:'#app',
  21. data:{
  22. isActive:true,
  23. isError:true
  24. },
  25. methods:{
  26. handle:function(){
  27. //控制isActive值在true和false之间切换
  28. this.isActive = !this.isActive;
  29. this.isError = !this.isError;
  30. }
  31. }
  32. })
  33. </script>
  • 数组语法

active是类名,类名后加Class

例子:

  1. <style>
  2. .active{
  3. border: 1px solid red;
  4. width: 100px;
  5. height: 100px;
  6. }
  7. .error{
  8. background-color:orange;
  9. }
  10. </style>
  11. <div id="app">
  12. <div v-bind:class="[activeClass,errorClass]">测试样式</div>
  13. <button v-on:click="handle">切换</button>
  14. </div>
  15. <script src="js/vue.min.js"></script>
  16. <script>
  17. var vm = new Vue({
  18. el:'#app',
  19. data:{
  20. activeClass:'active',
  21. errorClass:'error'
  22. },
  23. methods:{
  24. handle:function(){
  25. this.activeClass="";
  26. this.errorClass="";
  27. }
  28. }
  29. })
  30. </script>

2.2 class样式绑定相关语法细节

  1. 对象绑定和数组绑定可以结合使用

  2. class绑定的值可以简化操作(数组和对象)

    //数组的简化操作


    arrClasses:[‘active’,’error’],
    //对象的简化操作

    objClasses:{

    1. active:true,
    2. error:true
    3. }
  3. 默认的class会保留

    .base{

    1. font-size: 28px;
    2. }

在这里插入图片描述
注意:运行后会发现它有三个样式,有自己默认的base,还有objClasses里面的两个样式。

2.3 style样式处理

  • 对象语法

  • 数组语法

style样式处理用法其实和刚才的class样式处理基本是一样的!

  1. <div id="app">
  2. <div v-bind:style="{border:borderStyle,width:widthStyle,height:heightStyle}"></div>
  3. <div v-bind:style="objStyles"></div>
  4. <div v-bind:style="[objStyles, overrideStyles]"></div>
  5. <button v-on:click="handle">切换</button>
  6. </div>
  7. <script src="js/vue.min.js"></script>
  8. <script>
  9. var vm = new Vue({
  10. el:'#app',
  11. data:{
  12. borderStyle:'1px solid pink',
  13. widthStyle:'100px',
  14. heightStyle:'200px',
  15. objStyles:{
  16. border:'1px solid green',
  17. width:'200px',
  18. height:'100px'
  19. },
  20. overrideStyles:{
  21. border:'5px solid orange',
  22. backgroundColor:'blue'
  23. }
  24. },
  25. methods:{
  26. handle:function(){
  27. this.heightStyle='100px';
  28. this.objStyles.width='100px';
  29. }
  30. }
  31. })
  32. </script>

发表评论

表情:
评论列表 (有 0 条评论,112人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Vue门第

    1.路由的概念 路由的本质就是一种对应关系,比如说我们在url地址中输入我们要访问的url地址之后,浏览器要去请求这个url地址对应的资源。 那么url地址和真实的资