GIỚI THIỆU
CĂN BẢN
NÂNG CAO
VUEJS 2X CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Sử dụng methods trong VueJS 2

Methods là các hàm JavaScript được khai báo trong khối methods của một component Vue, cho phép mình tổ chức và thực hiện các tác vụ khác nhau một cách dễ dàng và có tổ chức.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Từ việc xử lý sự kiện người dùng, quản lý dữ liệu, đến việc tối ưu hóa hiệu suất của ứng dụng, methods đóng vai trò then chốt trong quá trình phát triển VueJS 2. Sự linh hoạt và khả năng tái sử dụng của chúng giúp tạo ra mã nguồn dễ đọc, bảo trì và mở rộng.

Trong bài viết này, mình sẽ tìm hiểu sâu hơn về cách sử dụng, tái sử dụng và tối ưu hóa methods trong VueJS 2. Từ việc cơ bản nhất đến các kỹ thuật tiên tiến, mình sẽ tìm hiểu cách methods đóng vai trò quan trọng trong việc xây dựng các ứng dụng VueJS 2 mạnh mẽ và linh hoạt.

Methods trong VueJS 2 là gì?

methods là một phần quan trọng trong khối chứa các định nghĩa của một component Vue. Nó chứa các phương thức JavaScript được sử dụng để xử lý logic, xử lý sự kiện, và thực hiện các tác vụ khác trong component đó.

Bài viết này được đăng tại [free tuts .net]

Các methods được khai báo bên trong một object methods trong định nghĩa của một component Vue. Cú pháp cơ bản để khai báo methods như sau:

Vue.component('my-component', {
  data() {
    return {
      // Các dữ liệu của component
    };
  },
  methods: {
    // Các phương thức
    methodName1() {
      // Logic cho method 1
    },
    methodName2() {
      // Logic cho method 2
    },
    // ...
  },
});

Các methods này có thể được gọi từ trong template của component hoặc từ các phương thức khác trong cùng component thông qua this.methodName().

Ví dụ, một method đơn giản để log message có thể được khai báo như sau:

methods: {
  logMessage() {
    console.log('Hello from method!');
  },
}

Và được gọi trong template:

<button @click="logMessage">Click me</button>

Khi nút được click, method logMessage sẽ được gọi và log ra console. Methods trong VueJS 2 cung cấp cách tiện lợi và tổ chức để quản lý các hành động và logic của một component.

Cơ bản về Methods trong VueJS 2

Khai báo và sử dụng Methods trong VueJS 2

  • Khai báo Methods: Trình bày cách khai báo methods trong một component VueJS 2, trong phần methods của định nghĩa component.
  • Sử dụng Methods: Thực hiện ví dụ về việc sử dụng methods để xử lý các tác vụ cụ thể trong một component.

Cách gọi Methods từ template và từ các thành phần khác

  • Gọi từ Template: Hướng dẫn cách gọi methods từ trong template của một component VueJS 2, thông qua các sự kiện DOM như @click, @mouseover,...
  • Gọi từ các thành phần khác: Đưa ra ví dụ về cách gọi methods từ một component con hoặc từ một phương thức khác trong cùng một component.

Ví dụ về cách khai báo, sử dụng methods và gọi từ template và các thành phần khác:

<template>
  <div>
    <p>{{ message }}</p>
    <button @click="logMessage">Log Message</button>
    <button @click="changeMessage">Change Message</button>
    <my-child-component
      @custom-event="logMessageFromChild"
    ></my-child-component>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: "Hello from Freetuts.net!",
    };
  },
  methods: {
    logMessage() {
      console.log(this.message);
    },
    changeMessage() {
      this.message = "Updated message!";
    },
    logMessageFromChild() {
      console.log("Method called from child component");
    },
  },
};
</script>

Index.vue

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>VueJS App</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
  </head>
  <body>
    <div id="app">
      <my-component></my-component>
    </div>

    <script>
      Vue.component("my-component", {
        data() {
          return {
            message: "Hello from Vue!",
          };
        },
        methods: {
          logMessage() {
            console.log(this.message);
          },
          changeMessage() {
            this.message = "Updated message!";
          },
          logMessageFromChild() {
            console.log("Method called from child component");
          },
        },
        template: `
        <div>
          <p>{{ message }}</p>
          <button @click="logMessage">Log Message</button>
          <button @click="changeMessage">Change Message</button>
          <my-child-component @custom-event="logMessageFromChild"></my-child-component>
        </div>
      `,
      });

      new Vue({
        el: "#app",
      });
    </script>
  </body>
</html>

z5007969196708 33dde21242f9552be93750ff2dd969f9 jpgz5007970181539 4a4df64e4376ce59a5bec0e13002e873 jpg

Trong ví dụ này, logMessage changeMessage là hai methods được khai báo và sử dụng trong component. logMessage được gọi từ template khi nút được click, changeMessage cũng tương tự. Ngoài ra, logMessageFromChild là method được gọi từ một component con thông qua một custom event.

Truyền tham số vào Methods trong VueJS 2

Truyền tham số khi gọi Methods

  • Truyền tham số từ Template: Hướng dẫn cách truyền tham số khi gọi methods từ template thông qua các sự kiện.
  • Truyền tham số từ Component Khác: Trình bày cách truyền tham số khi gọi methods từ một component khác hoặc từ một phương thức khác trong cùng một component.

Sử dụng tham số trong Methods

  • Nhận và sử dụng tham số: Hướng dẫn cách nhận và sử dụng tham số được truyền vào methods.
  • Ví dụ về sử dụng tham số: Cung cấp ví dụ minh họa về cách sử dụng tham số được truyền vào methods.

Ví dụ về cách truyền tham số khi gọi methods và sử dụng tham số trong methods:

Vue.component('my-component', {
  data() {
    return {
      message: 'Hello from Vue!',
    };
  },
  methods: {
    logMessageWithParam(param) {
      console.log(param);
    },
    updateMessage(value) {
      this.message = value;
    },
  },
  template: `
    <div>
      <p>{{ message }}</p>
      <button @click="logMessageWithParam('Parameter')">Log Message</button>
      <button @click="updateMessage('Updated message')">Change Message</button>
    </div>
  `,
});

Trong ví dụ này, logMessageWithParam updateMessage là hai methods. logMessageWithParam nhận một tham số và log ra console khi nút được click. updateMessage cũng tương tự, nhưng thay đổi giá trị của message thành giá trị được truyền vào. Cả hai methods đều sử dụng tham số một cách linh hoạt trong quá trình xử lý.

Xử lý sự kiện với Methods trong VueJS 2

Sử dụng Methods để xử lý sự kiện trong VueJS 2

  • Xử lý sự kiện từ Template: Hướng dẫn cách sử dụng methods để xử lý sự kiện từ các sự kiện DOM như @click, @mouseover,...
  • Xử lý sự kiện từ Component Khác: Trình bày cách gọi methods từ một component khác hoặc từ một phương thức khác trong cùng một component để xử lý sự kiện.

Gọi Methods khi sự kiện xảy ra

Cung cấp ví dụ minh họa về cách sử dụng methods để xử lý sự kiện.

Ví dụ về cách sử dụng methods để xử lý sự kiện trong VueJS 2:

Vue.component('my-component', {
  data() {
    return {
      count: 0,
    };
  },
  methods: {
    incrementCounter() {
      this.count++;
    },
    logEvent(event) {
      console.log('Event occurred:', event);
    },
  },
  template: `
    <div>
      <p>Count: {{ count }}</p>
      <button @click="incrementCounter">Increment</button>
      <input type="text" @input="logEvent($event)" placeholder="Type something">
    </div>
  `,
});

Trong ví dụ này, incrementCounter là một method được gọi khi nút "Increment" được click, từ đó tăng giá trị của count. Ngoài ra, logEvent là method được gọi khi có sự kiện input xảy ra trên input field, và nó log ra console thông tin về sự kiện đó. Cả hai method này đều được sử dụng để xử lý sự kiện từ các sự kiện DOM khác nhau.

Lifecycle Hooks và Methods trong VueJS 2

Sử dụng Methods trong Lifecycle Hooks

Cung cấp ví dụ về cách sử dụng methods để quản lý và xử lý các hoạt động trong mỗi lifecycle hook.

Ví dụ về việc sử dụng methods trong lifecycle hooks:

Vue.component('my-component', {
  data() {
    return {
      message: 'Hello from Vue!',
    };
  },
  methods: {
    logLifecycleEvent(eventName) {
      console.log(`Event ${eventName} occurred`);
    },
  },
  created() {
    this.logLifecycleEvent('created');
  },
  mounted() {
    this.logLifecycleEvent('mounted');
  },
  updated() {
    this.logLifecycleEvent('updated');
  },
  destroyed() {
    this.logLifecycleEvent('destroyed');
  },
});

Trong ví dụ này, logLifecycleEvent là method được gọi từ các lifecycle hooks để log thông tin về sự kiện lifecycle hookcomponent đang trải qua. Điều này giúp quản lý và xử lý các hoạt động trong từng giai đoạn của lifecycle một cách linh hoạt.

Ví dụ minh họa Methods trong VueJS 2

Sử dụng Methods trong các Dự Án VueJS 2: Hướng dẫn cách tích hợp và sử dụng methods trong các dự án VueJS 2.

Best Practices và Tips: Cung cấp các lời khuyên và best practices khi triển khai methods trong dự án VueJS 2.

Ví dụ về sử dụng methods trong các tình huống thực tế:

languageSwitcher.vue

<template>
  <div>
    <ul>
      <li v-for="lang in languages" :key="lang">
        <button @click="switchLanguage(lang)">{{ lang }}</button>
      </li>
    </ul>
    <p>Selected language: {{ selectedLanguage }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      languages: ['English', 'Spanish', 'French'],
      selectedLanguage: 'English',
    };
  },
  methods: {
    switchLanguage(lang) {
      this.selectedLanguage = lang;
      // Code để thay đổi ngôn ngữ trang web
      window.history.replaceState({}, '', `/${lang.toLowerCase()}`);
    },
  },
};
</script>

<style scoped>
/* CSS cho component languageSwitcher */
ul {
  list-style: none;
  padding: 0;
}

li {
  display: inline;
  margin-right: 10px;
}

button {
  background-color: #3498db;
  color: white;
  padding: 5px 10px;
  border: none;
  cursor: pointer;
}

button:hover {
  background-color: #2980b9;
}
</style>

Sau đó, để sử dụng component này, bạn có thể import nó vào một file chính, chẳng hạn như main.js:

main.js

import Vue from 'vue';
import LanguageSwitcher from './components/languageSwitcher.vue';

new Vue({
  el: '#app',
  components: {
    LanguageSwitcher,
  },
});

Sau đó, bạn có thể sử dụng component languageSwitcher tro ng file HTML của bạn:

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Language Switcher Example</title>
</head>
<body>
  <div id="app">
    <language-switcher></language-switcher>
  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
  <script src="main.js"></script>
</body>
</html>

z5007983032657 e60dc90d6b03fd1f8fac548cb60ce712 jpg

Trong ví dụ này, switchLanguage là method được sử dụng để thay đổi ngôn ngữ trang web khi người dùng chọn ngôn ngữ từ danh sách. Nó minh họa cách sử dụng methods để thực hiện một tác vụ cụ thể, có thể được áp dụng trong các dự án thực tế.

Kết bài

Mình đã tìm hiểu những khía cạnh cơ bản như khai báo, sử dụng, truyền tham số và xử lý sự kiện. Đồng thời, mình cũng nhìn nhận về tính tái sử dụng, tối ưu hóa và thậm chí việc áp dụng chúng trong các tình huống thực tế.

Từ việc sử dụng methods để thao tác dữ liệu đến việc kết hợp chúng với lifecycle hooks, mình đã có cái nhìn tổng quan và rõ ràng hơn về cách sử dụng methods trong môi trường phát triển VueJS 2.

Việc hiểu rõ về methods cung cấp cho bạn khả năng linh hoạt để xây dựng và quản lý ứng dụng của mình một cách hiệu quả. Hãy áp dụng những kiến thức này vào dự án của bạn và tiếp tục khám phá để nâng cao kỹ năng lập trình VueJS 2 của bạn!

Cùng chuyên mục:

Bài tập VueJS 2: Sử dụng Axios hoặc Fetch API trong VueJS 2

Bài tập VueJS 2: Sử dụng Axios hoặc Fetch API trong VueJS 2

Bài tập VueJS 2: Two-way binding trong VueJS 2

Bài tập VueJS 2: Two-way binding trong VueJS 2

Bài tập VueJS 2: Xử lý sự kiện trong VueJS 2

Bài tập VueJS 2: Xử lý sự kiện trong VueJS 2

Bài tập VueJS 2: Components trong VueJS 2

Bài tập VueJS 2: Components trong VueJS 2

Bài tập VueJS 2: Binding dữ liệu trong VueJS 2

Bài tập VueJS 2: Binding dữ liệu trong VueJS 2

Sử dụng directives (v-bind, v-model) để hiển thị và cập nhật dữ liệu bằng VueJS 2

Sử dụng directives (v-bind, v-model) để hiển thị và cập nhật dữ liệu bằng VueJS 2

Tạo nút và xử lý sự kiện khi nút được nhấn trong VueJS 2

Tạo nút và xử lý sự kiện khi nút được nhấn trong VueJS 2

VueJS 2 Components: Tạo và quản lý ToDo List đơn giản

VueJS 2 Components: Tạo và quản lý ToDo List đơn giản

Các quy tắc trong VueJS 2

Các quy tắc trong VueJS 2

Tạo component và binding data trong VueJS 2

Tạo component và binding data trong VueJS 2

Tìm hiểu Scoped CSS trong VueJS 2

Tìm hiểu Scoped CSS trong VueJS 2

Sử dụng forceUpdate trong VueJS 2

Sử dụng forceUpdate trong VueJS 2

Sử dụng v-for trong VueJS 2

Sử dụng v-for trong VueJS 2

10 best practices trong VueJS 2

10 best practices trong VueJS 2

Các tạo Custom Directives trong VueJS 2

Các tạo Custom Directives trong VueJS 2

Sử dụng V-for và V-if trong VueJs 2

Sử dụng V-for và V-if trong VueJs 2

Khác nhau giữa slot và scoped slots trong VueJS 2

Khác nhau giữa slot và scoped slots trong VueJS 2

Tìm hiểu Slots trong VueJS 2

Tìm hiểu Slots trong VueJS 2

Xử lý Custom Events trong VueJS 2

Xử lý Custom Events trong VueJS 2

Ref và Reactive trong VueJS 2

Ref và Reactive trong VueJS 2

Top