【Vue】Vue的基本語法與使用

目錄

Vue的使用步驟:

Vue.js的模本語法

   1.插值表達式

   2.事件綁定

      1、監聽事件

      2、事件處理方法

      3、事件修飾符

     4.按鍵修飾符

     3.屬性綁定

     4、分支循環結構

        1)分支結構:

        2)循環結構

        v-for遍歷數組


        Vue是一種漸進式JS框架,對於熟悉HTML,CSS,JS知識的學生很容易上手,並且它可以在一個庫和一個完整框架之間自如伸縮。

Vue的使用步驟:

             1)提供標籤用於填充數據

             2)引入vue.js庫文件

             3)使用Vue語法做功能

             4)將Vue提供的數據填充到標籤裏面

<body>
    <div id="app" v-cloak>
      <!-- {{}}插值表達式,作用就是將數據填充到標籤中。 -->
      <div>{{msg}}</div>
      <div v-text="msg"></div>
      <div v-html="msg1"></div>
      <div>
        <div v-text="num">num</div>
        <button @click="num++">點擊1</button>
        <button @click="handle">點擊2</button>
        <button @click="handle($event)">點擊3</button>
      </div>
    </div>
    <!-- //引入VUE文件 -->
    <script type="text/javascript" src="./JS/vue.js"></script>
    <script text="text/javascript">
      var vm = new Vue({
        el: "#app", //數據要填衝的位置(此處用ID進行標記)
        //data用於提供數據
        data: {
          msg: "Hello Vue",
          msg1: "<h1>Hello</h1>",
          num: 0,
        },
        methods: {
          handle: function (event) {
            //此處的this代表的是vm;
            console.log(event.target.innerHTML);
            this.num++;
          },
        },
      });
    </script>
  </body>

Vue.js的模本語法

   1.插值表達式

        1)最常見最基本的形式是使用{{……}}的文本插值

<div id="app">
     <div>{{ message }}</div>
</div>

<script>
      new Vue({
         el: '#app',
         data: {
         message: '<h1>Hello vue</h1>'
         }
      })
</script>

       2)、v-text

       v-text指令填充純文本,他會替代顯示對應的數據對象上的值,當綁定的數據對象的值發生變化的時候,插值處的內容也會隨之更新。

        注:此處爲單向綁定,數據對象的值改變,插值會發生變化,但是當差值發生變化不會影響數據對象的值。其中:v-text可以簡寫爲{{}},並且支持邏輯運算。

<div id="app">
  {{ message }}
</div>
var app = new Vue({
   el : '#app',
   data : {
    message : 'hello world'    
 }
})

        注:vue中有個指令叫做 v-once 可以通過v-once與v-text結合,實現僅執行一次性的插值

<span v-once>這個將不會隨msg屬性的改變而改變: {{ msg }}</span>

        3)、v-html

        v-html用於輸出html,它與v-text區別在於v-text輸出的是純文本,瀏覽器不會對其再進行html解析,但v-html會將其當html標籤解析後輸出

<div id="app">
    <p v-html="html"></p>
</div>
var app = new Vue({
   el : '#app',
   data : {
     html: "<b style='color:red'>v-html</b>"    
 }
})

        4)、v-model

        v-model通常用於表單組件的綁定,例如input,select等。它與v-text的區別在於它實現的表單組件的雙向綁定,如果用於表單控件以外標籤是沒有用的。

<div id="app">
  <input v-model="message " />
</div>
var app = new Vue({
   el : '#app',
   data : {
   message : 'hello world'    
 }
})

   2.事件綁定

      1、監聽事件

        可以使用v-on來進行DOM事件的監聽,並在觸發時運行一些JS代碼。

      2、事件處理方法

        對於邏輯比較複雜的事件,直接在JS代碼中邪v-on不太可行,因此v-on還可接收一個需要調用的方法名稱。

<div id="app">
  <!-- `greet` 是在下面定義的方法名 -->
  <button v-on:click="greet">Greet</button>
</div>
<script type='text/javascript'>
    var vm= new Vue({
      el: '#app',
      data: {
        name: 'Vue.js'
      },
      // 在 `methods` 對象中定義方法
      methods: {
        greet: function (event) {
          // `this` 在方法裏指向當前 Vue 實例
          alert('Hello ' + this.name + '!')
          // `event` 是原生 DOM 事件
          if (event) {
            alert(event.target.tagName)
          }
        }
      }    
    })
<script>

         注:v-on:click的另一種寫法就是@click

        1)如果事件直接綁定函數名稱,那麼默認會傳遞事件對象作爲事件函數的第一個參數

        2)如果事件綁定函數調用,那麼事件對象必須作爲最後一個參數顯示傳遞,並且事件對象的名稱必須是“$event”

<body>
    <div id="app" v-cloak>
      <div>
        <button @click="handle('123',$event)">點擊3</button>
      </div>
    </div>
    <!-- //引入VUE文件 -->
    <script type="text/javascript" src="./JS/vue.js"></script>
    <script text="text/javascript">
      var vm = new Vue({
        el: "#app", //數據要填衝的位置(此處用ID進行標記)
        //data用於提供數據
        data: {
        },
        methods: {
          handle: function (message, event) {
            //此處的this代表的是vm;
            console.log(event.target.innerHTML);
            alert(message);
          },
        },
      });
    </script>
  </body>

      3、事件修飾符

        1).stop:阻止單擊事件繼續傳播(阻止冒泡,)

        語法

//阻止鏈接的跳轉
<a v-on:click.stop="doThis"></a>

        2).prevent:阻止默認事件發生

        語法:

<!-- 提交事件不再重載頁面,submit提交控件-->
<form v-on:submit.prevent="onSubmit"></form>

        3).capture:捕獲冒泡,即有冒泡發生時,有該修飾符的dom元素會先執行,如果有多個,從外到內依次執行,然後再按自    然順序執行觸發的事件。

        語法:

//如果沒有使用.capture, 點擊按鈕的時候, 就會先觸發函數2, 然後觸發函數1, 
//添加了.capture, 點擊按鈕的時候, 就只會先觸發函數1, 然後觸發函數2
<div @click.capture='函數1' style='width:200px;height:200px;background:#000'>
	<input type='button' value='按鈕' @click='函數2'>
</div>

        4).self:只有點擊自身時纔會觸發事件

        語法:

//如果沒有使用.self, 點擊按鈕的時候, 就會先觸發函數2, 然後觸發函數1,
// 添加了.self, 點擊按鈕的時候, 就只會先觸發函數2,只有點擊div盒子本身,纔會觸發函數1
<div @click.self='函數1' style='width:200px;height:200px;background:#000'>
	<input type='button' value='按鈕' @click='函數2'>
</div>

        注意:使用修飾符時,順序很重要;相應的代碼會以同樣的順序產生。因此用 v-on:click.prevent.self 會阻止所有的點擊,而 v-on:click.self.prevent 只會阻止對元素自身的點擊。

        5).once:事件觸發一次

        語法:

<a href='https://www.baidu.com' @click.prevent.once='函數'></a>

     4.按鍵修飾符

        1).  .enter:enter鍵

        2).tab:tab鍵

        3).delete:刪除(退格)鍵

        4).esc:ESC鍵

        5).space:空格鍵

        6).up:上鍵

        7).down:下

        8).left:左

        9).right:右

        如下:enter和delete的實例,當按下delete鍵是,會清空用戶名,當按下enter鍵是會進行提交操作。當然了,如果想執行其他的操作,只需要將enter和delete後面的方法名換掉,方法內容更換即可。

 <body>
    <div id="app">
      <form action="">
        用戶名:<input
          type="text"
          v-on:keyup.delete="handle"
          v-model="uname"
        /><br />
        密碼:<input
          type="text"
          v-on:keyup.enter="handleSubmit"
          v-model="pwd"
        /><br />
        <input type="button" v-on:click="handleSubmit" value="提交" />
      </form>
    </div>
    <script type="text/javascript" src="./JS/vue.js"></script>
    <script type="text/javascript">
      /*
           事件綁定:按鍵修飾符
       */
      var vm = new Vue({
        el: "#app",
        data: {
          uname: "",
          pwd: "",
        },
        methods: {
          handleSubmit: function () {
            console.log(this.uname, this.pwd);
          },
          handle: function () {
            this.uname = "";
          },
        },
      });
    </script>
  </body>

     3.屬性綁定

        屬性綁定樣式的語法:

//v-bind指令用法
<a v-bind:href='url'>跳轉</a>
//縮寫語法
<a :href='url'>跳轉</a>

     

     4、分支循環結構

        1)分支結構:

v-if
v-else
v-else-if
v-show

       根據學生的程序判斷學生登記的判斷實例: 

<body>
    <form action="">
      <input type="text" v-model="score" />
      <button @click="show">顯示</button>
    </form>
    <div id="app">
      <div v-if="score>=90">優秀</div>
      <div v-else-if="score<90&&score>=80">良好</div>
      <div v-else-if="score<80&&score>60">一般</div>
      <div v-else>比較差</div>
    </div>

    <script type="text/javascript" src="./JS/vue.js"></script>
    <script type="text/javascript">
      var vm = new Vue({
        el: "#app",
        data: {
          score: 80,
        },
        methods: {
          show: function () {
            this.score = score;
          },
        },
      });
    </script>
  </body>

        2)循環結構

        v-for遍歷數組

                             

                            

  <body>
    <div id="app">
      <div>水果列表</div>
      <ul>
        <li v-for="item in list">{{item}}</li>
        <li v-for="fruit in fruits">
          {{fruit.id+'-----'+fruit.cname+'------'+fruit.ename}}
        </li>
        <li v-if="id==1" v-for="{id,cname,ename} in fruits">
          {{id+'-----'+cname+'------'+ename}}
        </li>
      </ul>
    </div>
    <script type="text/javascript" src="./JS/vue.js"></script>
    <script type="text/javascript">
      var vm = new Vue({
        el: "#app",
        data: {
          list: ["apple", "banana", "orange"],
          fruits: [
            { id: 1, cname: "蘋果", ename: "apple" },
            { id: 2, cname: "蘋果", ename: "apple" },
            { id: 3, cname: "蘋果", ename: "apple" },
          ],
        },
      });
    </script>
  </body>

顯示結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章