【博学谷学习记录】超强总结 用心分享|前端学习w20- vue指令(5)

91 阅读1分钟

2. v-bind

单向数据绑定,它是为标签里的某个属性绑定值用的

(1) 基本用法:

 <body>
    <div id="root">
     单向数据绑定:<input type="text" v-bind:value="aname">
    </div>
    <script>
      const vm = new Vue({
        el: '#root',
        data: {
          aname:'进击的Giser'
        },
      });
    </script>
 </body>

(2) 简写形式:

v-bind:可以简写为:,举例:v-bind:href='xxx'可以简写为::href='xxx'

3. v-model

双向数据绑定,v-model只能应用在表单类元素(如:input、select等)

(1) 基本用法:

 <body>
   <div id="root">
    双向数据绑定:<input type="text" v-model:value="aname">
   <!-- 下边一行代码是错误的,因为v-model只能应用在表单类元素(输入类元素)上 -->
   <!-- <h2 v-model:x="name">你好啊</h2> -->
   </div>
   <script>
     const vm = new Vue({
       el: '#root',
       data: {
         aname:'学编程的Giser'
       },
     });
   </script>
 </body>

(2) 简写形式:

v-model:value 可以简写为 v-model,因为v-model默认收集的就是value值。

4. v-for

遍历

(1) 遍历数组:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>test</title>
    <script src="../js/vue.js"></script>
  </head>
  <body>
    <div id="root">
      <h1 v-for="(i,index) in arr">每一项:{{i}}--索引值:{{index}}</h1>
    </div>
    <script>
      Vue.config.productionTip = false;
      const vm = new Vue({
        el: '#root',
        data: {
          arr: ['学', '编程', '的', 'GISer'],
        },
      });
    </script>
  </body>
</html>

(2) 遍历对象:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>test</title>
    <script src="../js/vue.js"></script>
  </head>
  <body>
    <div id="root">
      <h1 v-for="(i,index) in arr">键:{{i}}--值:{{index}}</h1>
    </div>
    <script>
      Vue.config.productionTip = false;
      const vm = new Vue({
        el: '#root',
        data: {
          arr: {
            name: 'Dapan',
            age: 3,
            sex: 'boy',
          },
        },
      });
    </script>
  </body>
</html>

(3) 迭代数字:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>test</title>
    <script src="../js/vue.js"></script>
  </head>
  <body>
    <div id="root">
      <h1 v-for="(i,index) in 6">每一项:{{i}}--索引:{{index}}</h1>
    </div>
    <script>
      Vue.config.productionTip = false;
      const vm = new Vue({
        el: '#root',
        data: {},
      });
    </script>
  </body>
</html>

5. v-show

条件渲染,v-show指令通过改变元素的 css 属性(display)来决定元素是显示还是隐藏。v-show等于false时,相当于设置了样式的display为none

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>test</title>
    <script src="../js/vue.js"></script>
  </head>
  <body>
    <div id="root">
      <h1>下边测试v-show:</h1>
      <h3 v-show="showTest">v-show = true,故这个元素显示出来了</h3>
      <button @click="showTest = true">点击按钮,showTest变为true</button>
    </div>
    <script>
      Vue.config.productionTip = false;
      const vm = new Vue({
        el: '#root',
        data: {
          showTest: false,
        },
      });
    </script>
  </body>
</html>

6. v-if

条件渲染,与v-show类似,唯一不同的是,当v-if = false的时候,直接删掉DOM结构

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>test</title>
    <script src="../js/vue.js"></script>
  </head>
  <body>
    <div id="root">
      <h1>下边测试v-if:</h1>
      <h3 v-if="ifTest">v-if = true,故这个元素显示出来了</h3>
      <button @click="ifTest = true">点击按钮,ifTest变为true</button>
    </div>
    <script>
      Vue.config.productionTip = false;
      const vm = new Vue({
        el: '#root',
        data: {
          ifTest: false,
        },
      });
    </script>
  </body>
</html>

7. v-else/v-else-if

v-else-if: 和if语句中else if的用法相同

v-else: 当v-if不成立时执行

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>test</title>
    <script src="../js/vue.js"></script>
  </head>
  <body>
    <div id="root">
      <div v-if="n==1">{{a}}</div>
      <div v-else-if="n==2">{{b}}</div>
      <div v-else-if="n==3">{{c}}</div>
      <div v-else-if="n==4">{{d}}</div>
      <div v-else style="font-weight: 700">{{e}}</div>
      <button @click="n++">点我n加一</button>
    </div>
    <script>
      Vue.config.productionTip = false;
      const vm = new Vue({
        el: '#root',
        data: {
          n: 0,
          a: '欢迎',
          b: '关注',
          c: '公众号',
          d: '学编程的GISer',
          e: '欢迎关注公众号:学编程的GISer',
        },
      });
    </script>
  </body>
</html>