> 웹 프론트엔드 > JS 튜토리얼 > Vue 내장 명령 방법 및 이벤트

Vue 내장 명령 방법 및 이벤트

php中世界最好的语言
풀어 주다: 2018-06-11 15:39:12
원래의
2232명이 탐색했습니다.

이번에는 Vue에 내장된 명령 방법과 이벤트를 가져왔습니다. Vue에 내장된 명령 방법과 이벤트를 사용할 때 주의 사항은 무엇입니까? 다음은 실제 사례입니다.

지시문은 v- 접두사가 있는 특수 속성입니다. 지시문의 역할은 표현식 값이 변경될 때 관련 효과를 DOM에 반응적으로 적용하는 것입니다.

내장 명령

1. v-bind: DOM 기능에 응답하고 업데이트합니다(예: v-bind:href v-bind:class v-bind:title 등).

주요 사용법 속성을 바인딩하는 것입니다. HTML 요소의 속성을 동적으로 업데이트합니다.

<a v-bind:href="url" rel="external nofollow" rel="external nofollow" >...</a>
<!-- 缩写 -->
<a :href="url" rel="external nofollow" rel="external nofollow" >...</a>
<p :title=&#39;title&#39;>标题</p>
var app = new Vue({
  el: '#app',
  data: { 
    url: 'www.baidu.com',
    title: 'bind'
  },
})
로그인 후 복사

2, v-on: DOM 이벤트를 수신하는 데 사용됩니다. 예: v-on:click v-on:keyup

메소드 및 이벤트에 대해 이야기하세요

2.1 @click 표현식은 JavaScript 문을 직접 사용할 수도 있고, Vue 인스턴스의 메소드 옵션에 있는 함수 이름일 수도 있습니다. 매개변수는 메소드

<!-- 完整语法 -->
<a v-on:click="doSomething">...</a>
<!-- 缩写 -->
<a @click="doSomething()">...</a>    //是一个方法名
<p ng-if=&#39;show&#39;>一段文本</p>
<button @click="show=false">点击隐藏文本</button>  //直接是一个内联的语句
<button v-on:click="count++">Add 1</button>
var app = new Vue({
  el: '#app',
  data:{
    show: true,
    counter: 0
  },
  methods: {
    doSomething: function(){
      console.log(this.title);
    },
  }
})
로그인 후 복사

2.2 메소드 및 이벤트:

Vue는 네이티브 DOM 이벤트에 액세스하는 데 사용되는 특수 변수 $event를 제공하여 이벤트가 버블링되거나 링크가 열리는 것을 방지할 수 있습니다.

버블링을 방지하기 위한 예제 작성:

  <p @click="stopClick1(&#39;stop1&#39;,$event)">
      <p @click="stopClick2(&#39;stop2&#39;,$event)">
        <p @click="stopClick3(&#39;stop3&#39;,$event)">阻止冒泡</p>
      </p>
    </p>
  </p>
methods:{
    stopClick3: function(message, event){
      console.log(message);
      event.stopPropagation();  //阻止冒泡
    },
    stopClick2: function(message, event){
      console.log(message);
    },
    stopClick1: function(message, event){
      console.log(message);
    }
}
로그인 후 복사

2.3 수정자:

작은 점 추가 "."로 묶인 이벤트 뒤에는 수정자를 사용하는 접미사가 옵니다.

위 버블링 이벤트는 직접 사용자 수정자로 작성할 수 있습니다.

<p @click.stop="stopClick3(&#39;stop3&#39;)">阻止冒泡</p>  //不用通过$event事件再来写了
로그인 후 복사

일반적으로 사용되는 일부 수정자는 다음과 같습니다.

• .stop

• .prevent

• .capture

• .self

• .once

< !一阻止单击事件冒泡一〉
<a @click.stop=”handle "></a>
〈!一修饰符可以串联一〉
<a @click.stop.prevent=” handle ” ></a>
〈!一添加事件侦听器时使用事件捕获模式一〉
<p @click . capture=”handle ”> ... </p>
〈!一只当事件在该元素本身(而不是子元素) 触发时触发回调一〉
<p @click.self=” handle ”> ... </p>
< !一只触发一次,组件同样适用一〉
<p @click.once=” handle ”> ... </p>
로그인 후 복사

양식 요소에서 키보드 이벤트를 모니터링할 때 특정 키를 눌렀을 때만 메서드를 호출하는 등의 키 수정자를 사용할 수도 있습니다.

< !一只有在keyCode 是13 时调用vm.submit()一〉
<input @keyup.13 =“ submit ”〉
로그인 후 복사

3. v-model: 양식 입력 등에 사용됩니다. .; 예: < v-model= "message" 입력>

4. v-show: 조건부 렌더링 명령, DOM에 대한 CSS 스타일 속성 설정

5. v-if: 조건부 렌더링 명령, 동적으로 추가 또는 DOM에서 DOM 요소를 삭제합니다. if 쌍으로 사용

8. 요소의 textContent를 업데이트합니다. }} ;

9.v-html: 요소의 innerHTML도 업데이트됩니다.

10, v-for: 루프 명령, 예:

<p id= "app ">
    <ul>
      <li v-for="book in books">{ { book.name } }</li>
    </ul>
  </p>
var app =new Vue({
  el: '#app',
  data: {
    books: [
      {name: '<vue.js实战>'},
      {name: '<javascript语言精粹>'},
      {name: '<javascript高级程序设计>'}
    ]
  }
});
로그인 후 복사

10.1 v- for 표현식은 배열을 순회할 때 현재 항목의 인덱스로 선택적 매개변수를 지원합니다. 예:

  <p id="app">
    <ul>
      <li v-for="(book , index) in books ">{{ index}} - {{book.name })</li>
    </ul>
  </p>
로그인 후 복사

10.2 v- for 표현식 순회 객체 속성이 사용되면 키 이름과 인덱스라는 두 가지 선택적 매개변수가 있습니다:

  <p id= "app">
    <ul>
      <li v-for="(value , key , index) in user ">
        { { index } } - { { key } } : { { value } }
      </li>
    </ul>
  </p>
var app = new Vue({
  el: '#app',
  data: {
    name: 'Aresn',
    grender: '男',
    age:23
  }
});
로그인 후 복사

10.3 v-for 표현식은 정수를 반복할 수도 있습니다:

 <p id="app">
    <span v-for="n in 10">{{n}}</span>
  </p>
로그인 후 복사

10.4 배열 업데이트

배열을 수정하면 Vue가 이를 감지합니다. 데이터가 변경되므로 v-for로 렌더링된 뷰도 즉시 업데이트됩니다.

• push()

• pop()

• Shift()

• unshit()

• splice()
• sort()
• reverse()

이 메소드는 이 메소드에 의해 호출된 원래 배열을 변경합니다

예를 들어 이전 예의 데이터 북에 항목을 추가합니다.

app.books.push({
  name: '《css世界》'
});
로그인 후 복사

다음과 같은 일부 메소드는 원래 배열을 변경하지 않습니다.

• filter()

• concat()

• Slice()

그들이 반환하는 것은 새로운 배열입니다. 이러한 비변이 방법을 사용하면 다음과 같이 원래 배열을 새 배열로 바꿀 수 있습니다.

app.books = app.books.filter(function (item) {
  return item . name.match(/JavaScript/);
});
로그인 후 복사

Vue 배열의 변경 사항을 감지하면 전체를 직접 다시 렌더링하지 않습니다. 목록에 있지만 DOM 요소의 재사용을 최대화합니다.

교체된 배열에서는 동일한 요소가 포함된 항목이 다시 렌더링되지 않으므로 성능 문제에 대한 걱정 없이 과감하게 기존 배열을 새 배열로 교체할 수 있습니다.

10.5 필터링 및 정렬

원래 배열을 변경하지 않고 배열 복사본을 통해 디스플레이를 필터링하거나 정렬하려는 경우 계산된 속성을 사용하여 필터링되거나 정렬된 배열을 반환할 수 있습니다. 예를 들면 다음과 같습니다.

  <p id="app">
    <ul>
      <template v-for="book in filterBooks">
        <li>书名:{{book.name}}</li>
        <li>作者:{{book.author}}</li>
      </template>
    </ul>
  </p>
var app= new Vue({
  el: '#app',
  computed: {
    filterBooks: function(){
      return this.books.filter(function (book) {
        return book.name.match(/JavaScript/);
      })
    },
  }
});
로그인 후 복사

11、v-cloak:不需要表达式,这个指令保持在元素上直到关联实例结束编译; v-cloak 是一个解决初始化慢导致页面闪动的最佳实践 ;

12、v-once:也是一个不需要表达式的指令,作用是定义它的元素或组件只渲染一次,包括元素或组件的所有子节点。

首次渲染后,不再随数据的变化重新渲染,将被视为静态内容; v-once 在业务中也很少使用,当你需要进一步优化性能时,可能会用到。

13、v-pre:不需要表达式,跳过这个元素以及子元素的编译过程,以此来加快整个项目的编译速度;例如: < span v-pre>{{ this will not be compiled }} </ span>

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

Vue项目内应用第三方验证码

在项目中如何使用Vue filter

위 내용은 Vue 내장 명령 방법 및 이벤트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿