vue基础指令

vue基础指令

vue指令

v-text和v-html

代码实现

<div id="app">
      <div v-text="name"></div>
</div>
    <script>
      var vue = new Vue({
        el: "#app",
        data: {
          name: "<span>姓名</span>"
        }
      });
    </script>
    //跟innerHtml和innerText相同

v-model

双向数据绑定: data中的数据—>渲染到页面
页面中输入框的内容变化---->data中的数据变化

事件

事件处理

代码实现

  <div id="app">
      <button v-on:click="getRes">按钮</button>
      <button @click="getRes">按钮</button>
      <button @click="getRes(event)">按钮</button>
      <h3>{{ num }}</h3>
    </div>

    <script>
      var vue = new Vue({
        el: "#app",
        data: {
          num: 10
        },
        methods: {
          getRes: function() {
            this.num++;
            console.log(this == vue); //这里的this指的是vue的实例对象
            console.log(event);
          }
        }
      });
    </script>

事件修饰符

a标签默认有默认跳转行为,添加了prevent修饰符,点击就不会页面跳转了。

<a href="https://www.baiud.com" @click.stop="fn"></a>
<a href="https://www.baiud.com" @click.prevent="fn"></a>

属性绑定

语法: v-bind:属性名=值 或者:属性名=值

 <div id="app">
      <a :href="url">跳转</a>
      <button @click="fn">更改跳转地址</button>
    </div>
    <script>
      var vue = new Vue({
        el: "#app",
        data: {
          url: ""
        },
        methods: {
          fn: function() {
            this.url = "https://www.baidu.com";
          }
        }
      });
    </script>

样式绑定

类名对象形式

  <style>
      .red {
        width: 200px;
        height: 200px;
        background-color: red;
      }
    </style>
  </head>
  <body>
    <div id="app">
      <div v-bind:class="{red:isShow}">我是测试div</div>
      <button @click="fn">更改跳转地址</button>
    </div>

    <script>
      var vue = new Vue({
        el: "#app",
        data: {
          isShow: false
        },
        methods: {
          fn: function() {
            this.isShow = !this.isShow;
          }
        }
      });
    </script>

类名数组形式

 <style>
      .redName {
        width: 200px;
        height: 200px;
        background-color: red;
      }
      .fzName {
        font-size: 40px;
      }
    </style>
  </head>
  <body>
    <div id="app">
      <div :class="[red,fz]">我是测试div</div>
      <button @click="fn">更改跳转地址</button>
    </div>

    <script>
      var vue = new Vue({
        el: "#app",
        data: {
          red: "redName",
          fz: "fzName"
        },
        methods: {
          fn: function() {
            this.red = "";
          }
        }
      });
    </script>

style类绑定

div id="app">
      <div :style="{width:w,height:h,border:bd}">111</div>
    </div>

    <script>
      var vue = new Vue({
        el: "#app",
        data: {
          w: "200px",
          h: "200px",
          bd: "1px solid #000"
        },
        methods: {
          fn: function() {
            this.w = "300px";
          }
        }
      });
    </script>

分支和循环结构

条件

语法: v-if v-else-if … v-else

 <div id="app">
      <p v-if="sal>=8000">吃大餐</p>
      <p v-else-if="sal>=5000&&sal<8000">在家吃</p>
      <p v-else="sal>=8000">没得吃</p>
    </div>

    <script>
      var vue = new Vue({
        el: "#app",
        data: {
          sal: 5000
        },
        methods: {
          fn: function() {
            this.w = "300px";
          }
        }
      });
    </script>

v-if和v-show

<div id="app">
      <button @click="fn">按钮</button>
      <div v-show="flag">我是div元素</div>
      <div v-if="flag">我是div元素</div>
    </div>

    <script>
      var vue = new Vue({
        el: "#app",
        data: {
          flag: false
        },
        methods: {
          fn: function() {
            this.flag = !this.flag;
          }
        }
      });
    </script>

v-ifv-show区别

  1. v-if是是否渲染显示出来,v-show是已经渲染了,切换了display:none属性。
  2. 如果页面频繁切换的时候,考虑到性能问题,推荐使用 v-show

循环

语法v-for="(item,index) in 循环的名字"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值