Office.in.th
คู่มือระบบ เนื้อหาผ่านการตรวจสอบแล้ว

การใช้เครื่องมือเสริม (Tooling) สำหรับการพัฒนา Vue.js

เครื่องมือเสริม (Tooling) ช่วยเพิ่มประสิทธิภาพในการพัฒนา Vue.js โดยช่วยจัดการงานที่ซับซ้อน เช่น การตั้งค่าโปรเจกต์ การบำรุงรักษาโค้ด การทดสอบ และการปรับปรุงประส...

1. เครื่องมือเสริมคืออะไร?

เครื่องมือเสริม (Tooling) ช่วยเพิ่มประสิทธิภาพในการพัฒนา Vue.js โดยช่วยจัดการงานที่ซับซ้อน เช่น การตั้งค่าโปรเจกต์ การบำรุงรักษาโค้ด การทดสอบ และการปรับปรุงประสิทธิภาพแอปพลิเคชัน


2. Vue CLI

Vue CLI เป็นเครื่องมือที่ช่วยสร้างและจัดการโปรเจกต์ Vue.js ได้อย่างง่ายดาย

การติดตั้ง Vue CLI:

npm install -g @vue/cli

การสร้างโปรเจกต์ใหม่:

vue create my-project

การเพิ่ม Plugins:

Vue CLI รองรับการเพิ่ม Plugins เพื่อขยายความสามารถของโปรเจกต์

vue add router
vue add vuex
vue add pwa

3. Vite

Vite เป็นเครื่องมือ Build ที่มีความเร็วสูงและรองรับ Vue.js โดยค่าเริ่มต้น

การติดตั้ง Vite:

npm create vite@latest my-project --template vue
cd my-project
npm install

การรัน Development Server:

npm run dev

การสร้าง Production Build:

npm run build

4. Vue DevTools

Vue DevTools เป็น Extension สำหรับ Browser ที่ช่วยในการ Debug แอปพลิเคชัน Vue.js

การติดตั้ง Vue DevTools:

ฟีเจอร์หลัก:

  • ตรวจสอบ Component Hierarchy
  • ดู State และ Props ของแต่ละ Component
  • Debug Vuex Store

5. ESLint และ Prettier

ESLint และ Prettier ช่วยให้โค้ดของคุณมีความสม่ำเสมอและลดข้อผิดพลาดในการเขียนโค้ด

การติดตั้ง ESLint และ Prettier:

npm install eslint prettier eslint-plugin-prettier eslint-config-prettier --save-dev

การตั้งค่า ESLint:

สร้างไฟล์ .eslintrc.js:

module.exports = {
  env: {
    browser: true,
    es2021: true
  },
  extends: [
    'eslint:recommended',
    'plugin:vue/vue3-recommended',
    'prettier'
  ],
  parserOptions: {
    ecmaVersion: 12,
    sourceType: 'module'
  },
  plugins: ['vue', 'prettier'],
  rules: {
    'prettier/prettier': 'error'
  }
};

6. Pinia

Pinia เป็น State Management Library ที่มีความเรียบง่ายและทันสมัยกว่า Vuex

การติดตั้ง Pinia:

npm install pinia

การตั้งค่า Pinia:

// main.js
import { createApp } from 'vue';
import { createPinia } from 'pinia';
import App from './App.vue';

const app = createApp(App);
app.use(createPinia());
app.mount('#app');

การสร้าง Store:

// stores/counter.js
import { defineStore } from 'pinia';

export const useCounterStore = defineStore('counter', {
  state: () => ({ count: 0 }),
  actions: {
    increment() {
      this.count++;
    }
  }
});

การใช้งานใน Component:

<template>
  <div>
    <p>Count: {{ counter.count }}</p>
    <button @click="counter.increment">Increment</button>
  </div>
</template>

<script>
import { useCounterStore } from '@/stores/counter';

export default {
  setup() {
    const counter = useCounterStore();
    return { counter };
  }
};
</script>

7. การใช้ Cypress สำหรับ End-to-End Testing

Cypress เป็นเครื่องมือสำหรับทดสอบ End-to-End ของแอปพลิเคชัน Vue.js

การติดตั้ง Cypress:

npm install cypress --save-dev

การเปิด Cypress Test Runner:

npx cypress open

การเขียนตัวอย่าง Test:

// cypress/integration/example.spec.js
describe('My First Test', () => {
  it('Visits the app root url', () => {
    cy.visit('/');
    cy.contains('h1', 'Welcome to Vue.js');
  });
});

8. การใช้ Storybook สำหรับ Component Development

Storybook ช่วยให้คุณพัฒนาและทดสอบ Component อย่างแยกส่วนได้ง่ายขึ้น

การติดตั้ง Storybook:

npx sb init

การรัน Storybook:

npm run storybook

การสร้าง Story:

// Button.stories.js
import Button from './Button.vue';

export default {
  title: 'Example/Button',
  component: Button
};

const Template = (args) => ({
  components: { Button },
  setup() {
    return { args };
  },
  template: '<Button v-bind="args" />'
});

export const Primary = Template.bind({});
Primary.args = {
  label: 'Primary Button'
};

9. สรุป

ในบทนี้ คุณได้เรียนรู้เกี่ยวกับเครื่องมือเสริมที่ช่วยในการพัฒนา Vue.js ได้แก่:

  • Vue CLI และ Vite สำหรับการตั้งค่าโปรเจกต์
  • Vue DevTools สำหรับ Debugging
  • ESLint และ Prettier สำหรับการบำรุงรักษาคุณภาพโค้ด
  • Pinia สำหรับการจัดการ State
  • Cypress และ Storybook สำหรับการทดสอบและพัฒนา Component

ในบทถัดไป เราจะศึกษาเกี่ยวกับการปรับแต่งประสบการณ์ผู้ใช้ (UX) ด้วย Transition, Animation และ Loading Indicators!

Office.in.th Custom Service

ต้องการพัฒนาระบบหรือปรับแต่งจากโครงสร้างนี้?

Office.in.th รับพัฒนาและออกแบบ Enterprise Web Application, API Integration และระบบบริหารงานภาครัฐ/เอกชน พร้อมการสนับสนุนระยะยาว

ดูบริการรับพัฒนาซอฟต์แวร์