Close Menu
TechTimes VietnamTechTimes Vietnam
  • Tin tức
    • Máy tính
    • Di động
    • Khoa học
    • Ứng dụng
    • Bảo mật
    • Điện tử tiêu dùng
    • Ô tô – Xe máy
    • Doanh nghiệp
      • PR Newswire
      • Media OutReach Newswire
      • GlobeNewswire
  • Đánh giá
  • Đời sống số
  • Thủ thuật
    • Bảo mật
    • Di động
    • Ứng dụng
    • Máy tính
    • Điện tử tiêu dùng
    • Máy ảnh
  • Khoa học

Đăng ký bản tin

Cập nhật thông tin, đánh giá, bình luận... trong hộp thư email.

Facebook X (Twitter) Instagram YouTube LinkedIn TikTok RSS
Facebook X (Twitter) TikTok LinkedIn RSS
TechTimes VietnamTechTimes Vietnam
  • Tin tức
    1. Máy tính
    2. Di động
    3. Khoa học
    4. Ứng dụng
    5. Bảo mật
    6. Điện tử tiêu dùng
    7. Ô tô – Xe máy
    8. Doanh nghiệp
    9. PR Newswire
    10. Media OutReach Newswire
    11. GlobeNewswire
    12. Xem tất cả

    ASUS mở bán ProArt P16 tại Việt Nam, trang bị NVIDIA RTX Spark và bộ nhớ hợp nhất 128GB

    17/10/2026

    Microsoft ưu đãi đến 1.000 USD cho người dùng MacBook Pro chuyển sang Surface Laptop Ultra

    12/10/2026

    Lenovo đưa Tech World trở lại CES 2027, thúc đẩy tầm nhìn Con người + AI

    09/10/2026

    MSI ra mắt EdgeXpert 64GB, mở rộng lựa chọn triển khai AI Agent tại doanh nghiệp

    08/10/2026

    ASUS mở bán ProArt P16 tại Việt Nam, trang bị NVIDIA RTX Spark và bộ nhớ hợp nhất 128GB

    17/10/2026

    Di Động Việt nhận đặt trước iPhone Duo, ưu đãi nâng cấp thiết bị đến 10 triệu đồng

    16/10/2026

    Minh Tuấn Mobile mở đặt hàng iPhone Duo, ưu đãi hệ sinh thái Apple và thu cũ đổi mới đến 88%

    16/10/2026

    Samsung mở rộng hỗ trợ tiếng Việt trên Bixby, Galaxy AI nâng lên 24 ngôn ngữ

    15/10/2026

    NASA và IBM ra mắt mô hình AI mã nguồn mở phục vụ khám phá Mặt Trăng

    12/09/2026

    James Webb phát hiện ngôi sao già tạo bụi silicate và hơi nước ngay sát hố đen trung tâm Ngân Hà

    12/08/2026

    VinSpace ký hợp đồng với SpaceX, dự kiến phóng vệ tinh lên quỹ đạo năm 2027

    11/08/2026

    Đá từ phía xa Mặt Trăng thách thức giả thuyết “oanh tạc dữ dội muộn” kéo dài 50 năm

    28/07/2026

    Elektrobit và Microchip hợp tác thúc đẩy phát triển phần mềm ô tô theo chuẩn AUTOSAR

    16/10/2026

    NVIDIA cùng các tập đoàn bán dẫn đẩy mạnh ứng dụng AI trong thiết kế chip và vận hành nhà máy

    16/10/2026

    Microsoft làm mới ứng dụng Photos trên Windows 11, hợp nhất ảnh từ PC, OneDrive và iCloud

    16/10/2026

    Synology chỉ ra những thách thức về dữ liệu khi doanh nghiệp Việt ứng dụng AI

    15/10/2026

    Kaspersky: Tấn công di động tại APAC tăng mạnh tại khu vực APAC

    30/09/2026

    GSMA: ASEAN cần xây dựng niềm tin số trước làn sóng lừa đảo bằng AI

    11/09/2026

    Kaspersky cảnh báo 48,4% máy tính OT tại Việt Nam bị mã độc tấn công trong năm 2025

    10/09/2026

    Kaspersky nhận hai giải thưởng về bảo mật công nghiệp tại APAC năm 2026

    20/08/2026

    Samsung mở rộng hệ sinh thái thiết bị gia dụng AI cho gia đình và doanh nghiệp

    15/10/2026

    Roborock ra mắt bộ ba thiết bị làm sạch mới tại Việt Nam, tăng cường khả năng làm sạch sâu

    05/10/2026

    Samsung đưa mô hình giặt sấy tự phục vụ 24/7 vào vận hành thực tế tại TiTi Laundry

    21/09/2026

    Sony BRAVIA 9 II được vinh danh “King of RGB LED TV 2026”

    21/09/2026

    VinFast bàn giao hơn 23.600 ô tô điện trong tháng 9/2026

    10/10/2026

    Mercedes-Benz Việt Nam tổ chức triển lãm “The Icons, Electrified” bên sông Sài Gòn

    05/10/2026

    Dat Bike được vinh danh tại Better Choice Awards 2026 với công nghệ Sạc tích hợp

    05/10/2026

    Aprilia Racing lập cú đúp podium tại MotoGP Nhật Bản, 4 xe RS-GP26 vào Top 6

    05/10/2026

    COMPUTEX 2026 chính thức mở màn, chủ đề ‘AI Together’, quy tụ 1.500 doanh nghiệp công nghệ toàn cầu

    02/06/2026

    NIC Việt Nam góp mặt tại GITEX ASIA 2025 – Kết nối hệ sinh thái công nghệ châu Á

    17/04/2025

    VinBrain mở rộng hợp tác với Medlatec và Vikomed

    18/09/2024

    Công bố sự kiện xúc tiến giao thương MEGA US EXPO 2024

    11/07/2024

    Hội nghị Phát triển Giáo dục Nghề nghiệp và Kỹ thuật Thế giới năm 2026 khai mạc tại Thiên Tân

    17/10/2026

    Bảo mật dựa trên trí tuệ tại Macao: CTM và Huawei hợp tác củng cố an ninh mạng trong kỷ nguyên AI

    17/10/2026

    Hội nghị Đổi mới AI CITY Chính phủ Toàn cầu được tổ chức thành công

    16/10/2026

    Shanghai Electric giới thiệu các giải pháp tích hợp thúc đẩy đổi mới sáng tạo công nghiệp tại CIIF 2026

    16/10/2026

    Travelodge Hotels Asia chính thức khai trương Travelodge Gangnam Yeoksam Seoul, khách sạn thứ 5 của công ty tại Hàn Quốc

    15/10/2026

    Ông Jason Varsamidis được bổ nhiệm làm Giám đốc điều hành (CEO) của DP World khu vực châu Á – Thái Bình Dương

    15/10/2026

    ZTE Hồng Kông và LSCM ký kết Biên bản ghi nhớ (MoU) để thúc đẩy sự phát triển kỹ thuật số và thông minh của Hồng Kông

    15/10/2026

    FPG Fortune Prime Global tham dự Forex Expo Dubai 2026 cùng AC Milan với chuỗi hoạt động đặc biệt

    15/10/2026

    ASUS mở bán ProArt P16 tại Việt Nam, trang bị NVIDIA RTX Spark và bộ nhớ hợp nhất 128GB

    17/10/2026

    FPT Shop giảm giá đến 50% nhiều sản phẩm công nghệ, gia dụng dịp 20/10

    17/10/2026

    Hội nghị Phát triển Giáo dục Nghề nghiệp và Kỹ thuật Thế giới năm 2026 khai mạc tại Thiên Tân

    17/10/2026

    Bảo mật dựa trên trí tuệ tại Macao: CTM và Huawei hợp tác củng cố an ninh mạng trong kỷ nguyên AI

    17/10/2026

    ASUS mở bán ProArt P16 tại Việt Nam, trang bị NVIDIA RTX Spark và bộ nhớ hợp nhất 128GB

    17/10/2026

    FPT Shop giảm giá đến 50% nhiều sản phẩm công nghệ, gia dụng dịp 20/10

    17/10/2026

    Di Động Việt nhận đặt trước iPhone Duo, ưu đãi nâng cấp thiết bị đến 10 triệu đồng

    16/10/2026

    Minh Tuấn Mobile mở đặt hàng iPhone Duo, ưu đãi hệ sinh thái Apple và thu cũ đổi mới đến 88%

    16/10/2026
  • Đánh giá

    HUAWEI WATCH GT 7 và FreeBuds Neo: Bộ đôi công nghệ cho nhịp sống hiện đại

    01/10/2026
    9.6

    Nothing Phone (4a): Cá tính khác biệt, trải nghiệm thuyết phục giữa thế giới smartphone na ná nhau

    24/09/2026
    9.7

    Đánh giá Nothing Phone (4b): Khác biệt, thực dụng và những giới hạn phải chấp nhận

    23/09/2026
    9.5

    Đánh giá Galaxy Z Fold8: Sau 1 tháng, cái hay không đơn giản là nằm ở khả năng gập

    18/09/2026
    9.4

    Đánh giá Epson EcoTank L6370: Chiếc máy in đủ sức gánh công việc của cả văn phòng nhỏ

    16/09/2026
  • Đời sống số

    ASUS mở bán ProArt P16 tại Việt Nam, trang bị NVIDIA RTX Spark và bộ nhớ hợp nhất 128GB

    17/10/2026

    FPT Shop giảm giá đến 50% nhiều sản phẩm công nghệ, gia dụng dịp 20/10

    17/10/2026

    Di Động Việt nhận đặt trước iPhone Duo, ưu đãi nâng cấp thiết bị đến 10 triệu đồng

    16/10/2026

    Minh Tuấn Mobile mở đặt hàng iPhone Duo, ưu đãi hệ sinh thái Apple và thu cũ đổi mới đến 88%

    16/10/2026

    Elektrobit và Microchip hợp tác thúc đẩy phát triển phần mềm ô tô theo chuẩn AUTOSAR

    16/10/2026
  • Thủ thuật
    1. Bảo mật
    2. Di động
    3. Ứng dụng
    4. Máy tính
    5. Điện tử tiêu dùng
    6. Máy ảnh
    7. Xem tất cả

    Kaspersky: Tấn công di động tại APAC tăng mạnh tại khu vực APAC

    30/09/2026

    GSMA: ASEAN cần xây dựng niềm tin số trước làn sóng lừa đảo bằng AI

    11/09/2026

    Kaspersky cảnh báo 48,4% máy tính OT tại Việt Nam bị mã độc tấn công trong năm 2025

    10/09/2026

    Kaspersky nhận hai giải thưởng về bảo mật công nghiệp tại APAC năm 2026

    20/08/2026

    ASUS mở bán ProArt P16 tại Việt Nam, trang bị NVIDIA RTX Spark và bộ nhớ hợp nhất 128GB

    17/10/2026

    Di Động Việt nhận đặt trước iPhone Duo, ưu đãi nâng cấp thiết bị đến 10 triệu đồng

    16/10/2026

    Minh Tuấn Mobile mở đặt hàng iPhone Duo, ưu đãi hệ sinh thái Apple và thu cũ đổi mới đến 88%

    16/10/2026

    Samsung mở rộng hỗ trợ tiếng Việt trên Bixby, Galaxy AI nâng lên 24 ngôn ngữ

    15/10/2026

    Elektrobit và Microchip hợp tác thúc đẩy phát triển phần mềm ô tô theo chuẩn AUTOSAR

    16/10/2026

    NVIDIA cùng các tập đoàn bán dẫn đẩy mạnh ứng dụng AI trong thiết kế chip và vận hành nhà máy

    16/10/2026

    Microsoft làm mới ứng dụng Photos trên Windows 11, hợp nhất ảnh từ PC, OneDrive và iCloud

    16/10/2026

    Synology chỉ ra những thách thức về dữ liệu khi doanh nghiệp Việt ứng dụng AI

    15/10/2026

    ASUS mở bán ProArt P16 tại Việt Nam, trang bị NVIDIA RTX Spark và bộ nhớ hợp nhất 128GB

    17/10/2026

    Microsoft ưu đãi đến 1.000 USD cho người dùng MacBook Pro chuyển sang Surface Laptop Ultra

    12/10/2026

    Lenovo đưa Tech World trở lại CES 2027, thúc đẩy tầm nhìn Con người + AI

    09/10/2026

    MSI ra mắt EdgeXpert 64GB, mở rộng lựa chọn triển khai AI Agent tại doanh nghiệp

    08/10/2026

    Samsung mở rộng hệ sinh thái thiết bị gia dụng AI cho gia đình và doanh nghiệp

    15/10/2026

    Roborock ra mắt bộ ba thiết bị làm sạch mới tại Việt Nam, tăng cường khả năng làm sạch sâu

    05/10/2026

    Samsung đưa mô hình giặt sấy tự phục vụ 24/7 vào vận hành thực tế tại TiTi Laundry

    21/09/2026

    Sony BRAVIA 9 II được vinh danh “King of RGB LED TV 2026”

    21/09/2026

    Nikon ra mắt Z5IIC, máy ảnh full-frame hướng đến người dùng muốn chụp đẹp dễ dàng

    24/09/2026

    Canon ra mắt EOS R8 Mark II với chống rung IBIS và loạt tính năng sáng tạo mới

    16/09/2026

    Sony RX10 V ra mắt: Camera zoom siêu xa nhưng mức giá lên đến 2.300 USD gây nhiều tranh cãi

    10/07/2026

    Sony ALPHA 7R VI có giá 114 triệu đồng: Máy ảnh full-frame 67MP kết hợp tốc độ và độ phân giải vượt trội

    15/05/2026

    Nothing Phone (4a) hay (4b) khác nhau ra sao và nên chọn máy nào?

    25/09/2026

    Microsoft chỉ cách đơn giản giúp Windows 11 khởi động nhanh hơn

    17/08/2026

    7 mẹo hay giúp người dùng Android sáng tạo nội dung nhanh hơn với ‘siêu phẩm’ OPPO Reno16 5G

    13/07/2026

    Những lưu ý khi mua TV xem World Cup 2026: Đừng để những cái tên công nghệ làm bạn ‘việt vị’

    14/06/2026
  • Khoa học
TechTimes VietnamTechTimes Vietnam
Cách xây dựng trình tạo văn bản Lorem Ipsum bằng JavaScript và Vite

Cách xây dựng trình tạo văn bản Lorem Ipsum bằng JavaScript và Vite

24/07/2023Media Outreach Newswire9 phút để đọc
Đọc bài
Tự động

Lorem ipsum là văn bản mà các nhà phát triển và nhà thiết kế trên khắp thế giới sử dụng làm trình giữ chỗ. Nếu bạn tương tác với nhiều nguyên mẫu giao diện người dùng, có thể bạn đã bắt gặp nó trước đây.


Tìm hiểu cách xây dựng trình tạo Lorem ipsum linh hoạt với Vite và JavaScript và bạn sẽ linh hoạt các kỹ năng phát triển của mình với kết quả hữu ích.


Tại sao Lorem Ipsum lại được sử dụng rộng rãi như vậy?

Bạn có thể thắc mắc tại sao rất nhiều nhà phát triển và nhà thiết kế chọn lorem ipsum khi họ có thể chỉ cần sao chép một trang từ một cuốn sách miền công cộng hoặc tương tự. Lý do chính là nó cho phép người dùng hoặc người xem hiểu được hình thức trực quan của tài liệu hoặc nguyên mẫu mà không tập trung quá nhiều vào chính văn bản giữ chỗ.

Hãy tưởng tượng bạn đang thiết kế một tờ báo. Thay vì gặp rắc rối khi sao chép văn bản từ các nguồn khác nhau để làm cho thiết kế chân thực nhất có thể, bạn chỉ cần sao chép văn bản giữ chỗ lorem ipsum tiêu chuẩn và sử dụng văn bản đó thay thế.

Lorem ipsum được công nhận rộng rãi đến mức bạn thậm chí không cần chỉ định rằng đó là văn bản giữ chỗ—hầu như tất cả những ai bắt gặp nó sẽ ngay lập tức nhận ra rằng văn bản đó là văn bản bổ sung.

Thiết lập máy chủ dự án và phát triển

Mã được sử dụng trong dự án này có sẵn trong một kho lưu trữ GitHub và miễn phí cho bạn sử dụng theo giấy phép MIT. Sao chép nội dung của phong cách.css và lorem.js các tệp và dán chúng vào các bản sao cục bộ của các tệp này.

Nếu bạn muốn xem phiên bản trực tiếp của dự án này, bạn có thể xem cái này thử nghiệm.

Bạn sẽ sử dụng công cụ xây dựng Vite để thiết lập mọi thứ. Đảm bảo rằng bạn đã cài đặt Node.js và Trình quản lý gói nút (NPM) hoặc Sợi trên máy của mình, sau đó mở thiết bị đầu cuối của bạn và chạy:

 npm create vite 

Hoặc:

 yarn create vite

Điều này sẽ tạo ra một dự án Vite trống. Nhập tên dự án, đặt khung thành “Vanilla” và biến thể thành “Vanilla”. Sau khi làm điều đó, điều hướng đến thư mục dự án với đĩa CD lệnh, sau đó chạy:

 npm i 

Hoặc:

 yarn 

Sau khi cài đặt tất cả các phụ thuộc, hãy mở dự án trong trình soạn thảo văn bản bạn chọn, sau đó sửa đổi cấu trúc dự án để trông giống như sau:

Ảnh chụp màn hình của cấu trúc dự án

Bây giờ, xóa nội dung của index.html tập tin và thay thế nó bằng như sau:

 <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Lorem Ipsum Generator</title>
  </head>
  <body>
    <h1>Lorem Ipsum Generator</h1>
    <div id="app">
      <div class="controls">
        <form>
          <div class="control">
            <label for="w-count">Words per paragraph</label>
            <div>
              <input type="range" id="w-count" min="10" max="100" value="25" step="10">
              <span id="w-count-label">25</span>
            </div>
          </div>
          <div class="control">
            <label for="p-count">Paragraph count</label>
            <div>
              <input type="range" id="p-count" min="1" max="20" step="1" value="3">
              <span id="p-count-label">3</span>
            </div>
          </div>
          <button type="submit">Generate</button>
        </form>
        <button class="copy">Copy to Clipboard</button>
        <div class="info">
          Use the sliders to set the parameters, then hit the "Generate" button.
          
          You can copy the text by hitting the "Copy to Clipboard" button
        </div>
      </div>
      <div class="output"></div>
    </div>
    <script type="module" src="/main.js"></script>
  </body>
</html>

Đánh dấu này chỉ đơn giản là xác định giao diện người dùng. Phía bên trái của màn hình hiển thị các điều khiển, trong khi phía bên phải hiển thị đầu ra. Tiếp theo, mở chính.js tệp, xóa nội dung của tệp và thêm một dòng để nhập phong cách.css:

 import './style.css'

Nhập tệp Lorem và xác định biến toàn cục

Mở kho lưu trữ GitHub của dự án này, sao chép nội dung của lorem.js tệp và dán chúng vào bản sao cục bộ của bạn lorem.js. lorem.js chỉ cần xuất một chuỗi văn bản Lorem Ipsum rất dài mà các tệp JavaScript khác có thể sử dụng.

bên trong chính.js tệp, nhập tệp truyền thuyết chuỗi từ lorem.js file và xác định các biến cần thiết:

 import { lorem } from './lorem';

let text = lorem.replace(/[.,/#!$%^&*;:{}=-_`~()]/g, "").split(' ');
let lastChar;
let wordCountControl = document.querySelector("#w-count");
let paragraphCountControl = document.querySelector("#p-count");
let wordCountLabel = document.querySelector("#w-count-label");
let paragraphCountLabel = document.querySelector("#p-count-label");
let wordCount = wordCountControl.value;
let paragraphCount = paragraphCountControl.value;
let copy = document.querySelector(".copy");

Mã này sử dụng một biểu thức chính quy để loại bỏ bất kỳ dấu chấm câu nào trong truyền thuyết chữ. Các chữ biến liên kết phiên bản sửa đổi này của truyền thuyết chữ. Điều này sẽ làm cho nó dễ dàng hơn để tạo ra các từ và đoạn văn.

Tạo chức năng máy phát điện

Đối với bất kỳ câu hoặc đoạn văn được tạo ngẫu nhiên nào có vẻ “thực”, cần phải có dấu chấm câu. Sau khi xác định các biến toàn cục, hãy tạo một hàm gọi là generateRandomPunctuation() và trong chức năng đó tạo ra một mảng gọi là nhân vật và cư nó.

 function generateRandomPunctuation() {
    let characters = [",", "!", ".", "?"];
    let character = characters[Math.floor(Math.random() * characters.length)];
    lastChar = character;
    return character;
}

Khối mã ở trên xác định một mảng, nhân vật, chứa các dấu chấm câu khác nhau. Nó định nghĩa một biến khác, tính cáchmà nó đặt thành một phần tử ngẫu nhiên từ nhân vật mảng. Biến toàn cầu, cuối cùngCharlưu trữ cùng một giá trị mà sau đó hàm trả về.

Tiếp theo, tạo một tạoParagraph() chức năng với một đếm tham số có giá trị mặc định là 100.

 function generateParagraph(count = 100) {
}

Trong chức năng này, khai báo một đoạn văn mảng và tìm nạp các từ ngẫu nhiên từ toàn cầu chữ mảng, sau đó đẩy nó vào đoạn văn.

 let paragraph = [];

for (let i = 1; i <= count; i++) {
    paragraph.push(text[Math.floor(Math.random() * text.length)].toLowerCase());
}

Tiếp theo, thêm mã để viết hoa chữ cái đầu tiên trong từ đầu tiên của mỗi đoạn:

 let fl=paragraph[0];
paragraph[0] = fl.replace(fl[0], fl[0].toUpperCase());

Mỗi đoạn kết thúc bằng dấu chấm câu (thường là dấu chấm), vì vậy hãy thêm mã thêm dấu chấm vào cuối mỗi đoạn.

 let lwPos = paragraph.length - 1;
let lWord = paragraph[lwPos];
paragraph[lwPos] = lWord.replace(lWord, lWord + ".");

Tiếp theo, triển khai chức năng thêm dấu chấm câu được tạo ngẫu nhiên vào thành phần ngẫu nhiên trong đoạn văn mảng.

 paragraph.forEach((word, index) => {
    if (index > 0 && index % 10 === 0) {
        let randomNum = Math.floor(Math.random() * 4);
        let pos = index + randomNum;
        let randWord = paragraph[pos];
        paragraph[pos] = randWord.replace(randWord, randWord + generateRandomPunctuation());
        let nWord=paragraph[pos + 1];

        if (lastChar !== ",") {
            paragraph[pos + 1] = nWord.replace(nWord[0], nWord[0].toUpperCase());
        }
    }
})

Khối mã này tạo ra một ký tự chấm câu ngẫu nhiên và nối nó vào cuối một phần tử ngẫu nhiên từ đoạn văn mảng. Sau khi nối thêm dấu câu, nó viết hoa chữ cái đầu tiên của thành phần tiếp theo nếu dấu câu không phải là dấu phẩy.

Cuối cùng, trả lại đoạn văn mảng được định dạng dưới dạng một chuỗi:

 return paragraph.join(" "); 

Văn bản lorem ipsum phải có ‘cấu trúc’ dựa trên số lượng đoạn văn mà người dùng chỉ định. Bạn có thể sử dụng một mảng để xác định ‘cấu trúc’ này. Ví dụ: nếu người dùng muốn một văn bản lorem ipsum có ba đoạn, thì mảng ‘cấu trúc’ sẽ có dạng như sau:

 structure = ["First paragraph.", "n n", "Second paragraph.", "n n", "Third paragraph"]

Trong khối mã ở trên, mỗi “n n” đại diện cho khoảng cách giữa mỗi đoạn. nếu bạn đăng nhập cấu trúc.join(“”) trong bảng điều khiển trình duyệt, bạn sẽ thấy như sau:

Ảnh chụp màn hình của cấu trúc

Tạo một hàm tự động tạo cấu trúc này và gọi hàm tạo raParagraph chức năng:

 function generateStructure(wordCount, paragraph = 1) {
    let structure = [];

    for (let i = 0; i < paragraph * 2; i++) {
        if (i % 2 === 0) structure[i] = generateParagraph(wordCount);
        else if (i < (paragraph * 2) - 1) structure[i] = "n n";
    }

    return structure.join("");
}

Thêm Trình lắng nghe sự kiện vào Điều khiển

Thêm trình xử lý sự kiện “đầu vào” vào wordCountControl phần tử đầu vào và trong chức năng gọi lại, đặt số từ đến giá trị đầu vào. Sau đó cập nhật nhãn.

 wordCountControl.addEventListener("input", (e) => {
    wordCount = e.target.value;
    wordCountLabel.textContent= e.target.value;
})

Tiếp theo, thêm trình xử lý sự kiện “đầu vào” vào kiểm soát đoạn văn phần tử đầu vào và trong hàm gọi lại, đặt đoạn văn vào giá trị đầu vào và cập nhật nhãn.

 paragraphCountControl.addEventListener("input", (e) => {
    paragraphCount= e.target.value;
    paragraphCountLabel.textContent = e.target.value;
})

Thêm trình xử lý sự kiện “nhấp chuột” vào sao chép nút gọi trở lại sao chép văn bản() khi sự kiện kích hoạt.

 copy.addEventListener("click", ()=>copyText());

Cuối cùng, thêm trình xử lý sự kiện “gửi” vào hình thức phần tử HTML và gọi cập nhật giao diện người dùng chức năng trong chức năng gọi lại.

 document.querySelector("form").addEventListener('submit', (e) => {
    e.preventDefault();
    updateUI();
})

Hoàn thiện và cập nhật giao diện người dùng

Tạo một chức năng getControlValues trả về số từ Và đoạn văn như một đối tượng.

 function getControlValues() {
    return { wordCount, paragraphCount };
}

Sau đó tạo cập nhậtUI() chức năng hiển thị văn bản được tạo trên màn hình cho người dùng:

 function updateUI() {
    let output = generateStructure(getControlValues().wordCount, getControlValues().paragraphCount)
    document.querySelector(".output").innerText = output;
}

Sắp xong. tạo sao chép văn bản() chức năng ghi văn bản vào khay nhớ tạm bất cứ khi nào người dùng nhấp vào nút “Sao chép vào khay nhớ tạm”.

 async function copyText() {
    let text = document.querySelector(".output").innerText;
    try {
      await navigator.clipboard.writeText(text);
      alert('Copied to clipboard');
    } catch (err) {
      alert('Failed to copy: ', err);
    }
  }

Sau đó gọi cập nhậtUI() chức năng:

 updateUI();

Chúc mừng! Bạn đã xây dựng trình tạo văn bản lorem ipsum bằng JavaScript và Vite.

Ảnh chụp màn hình của dự án đã hoàn thành

Tăng cường phát triển JavaScript của bạn với Vite

Vite là một công cụ giao diện người dùng phổ biến giúp dễ dàng thiết lập khung giao diện người dùng của bạn. Nó hỗ trợ nhiều khung khác nhau như React, Svelte, SolidJS và thậm chí cả JavaScript đơn giản. Nhiều nhà phát triển JavaScript sử dụng Vite vì nó rất dễ cài đặt và rất nhanh.

Nguồn: Tổng hợp – được thực hiện thử nghiệm bằng NLP và trí tuệ nhân tạo, vui lòng nhấn báo lỗi để góp ý

Theo dõi TechTimes trên Google News
Chia sẻ. Copy Link Facebook Twitter Pinterest LinkedIn Tumblr Email WhatsApp
Bài trướcCách cấp nguồn cho Raspberry Pi Pico
Bài tiếp theo Lỗi Tệp Quá Lớn” trong Linux

Bài viết liên quan

Qualcomm unveils Snapdragon 8 Elite Gen 6 alongside Extreme variant

Cathay Financial Holdings Unifies Vietnam Operations, Accelerates AI and Sustainable Finance

Samsung Expands Android 17-Based One UI 9 Beta to More Galaxy Phones in September

Apple Raises AppleCare+ Pricing for New Mac and iPad Subscriptions

[COMPUTEX 2026] GTC Taipei 2026: Jensen Huang Unveils NVIDIA’s Vision for the Agentic AI Era

iOS 27 Rumored to Bring Major Camera and Photos App Upgrades

  • Facebook
  • Twitter
  • Instagram
  • YouTube
  • LinkedIn
  • TikTok
Đánh giá mới
9.6

Nothing Phone (4a): Cá tính khác biệt, trải nghiệm thuyết phục giữa thế giới smartphone na ná nhau

24/09/2026
9.7

Đánh giá Nothing Phone (4b): Khác biệt, thực dụng và những giới hạn phải chấp nhận

23/09/2026
9.5

Đánh giá Galaxy Z Fold8: Sau 1 tháng, cái hay không đơn giản là nằm ở khả năng gập

18/09/2026
9.4

Đánh giá Epson EcoTank L6370: Chiếc máy in đủ sức gánh công việc của cả văn phòng nhỏ

16/09/2026
9.7

Đánh giá Galaxy S26 Ultra sau hơn 3 tháng: AI thực sự hữu ích và quyền riêng tư trở thành nâng cấp đáng giá

26/06/2026
Được quan tâm nhiều
Máy tính

ASUS mở bán ProArt P16 tại Việt Nam, trang bị NVIDIA RTX Spark và bộ nhớ hợp nhất 128GB

17/10/2026Đô Nguyễn

ASUS chính thức mở bán laptop sáng tạo nội dung ProArt P16 tại Việt Nam,…

FPT Shop giảm giá đến 50% nhiều sản phẩm công nghệ, gia dụng dịp 20/10

17/10/2026

Di Động Việt nhận đặt trước iPhone Duo, ưu đãi nâng cấp thiết bị đến 10 triệu đồng

16/10/2026

Minh Tuấn Mobile mở đặt hàng iPhone Duo, ưu đãi hệ sinh thái Apple và thu cũ đổi mới đến 88%

16/10/2026

Elektrobit và Microchip hợp tác thúc đẩy phát triển phần mềm ô tô theo chuẩn AUTOSAR

16/10/2026

NVIDIA cùng các tập đoàn bán dẫn đẩy mạnh ứng dụng AI trong thiết kế chip và vận hành nhà máy

16/10/2026

Microsoft làm mới ứng dụng Photos trên Windows 11, hợp nhất ảnh từ PC, OneDrive và iCloud

16/10/2026

UNIQLO khai trương cửa hàng đầu tiên tại Thanh Hóa, giới thiệu bộ sưu tập mang dấu ấn địa phương

16/10/2026

Synology chỉ ra những thách thức về dữ liệu khi doanh nghiệp Việt ứng dụng AI

15/10/2026

Samsung mở rộng hệ sinh thái thiết bị gia dụng AI cho gia đình và doanh nghiệp

15/10/2026

FPT Shop miễn phí công chẩn đoán và sửa chữa điện máy, gia dụng

15/10/2026

Samsung mở rộng hỗ trợ tiếng Việt trên Bixby, Galaxy AI nâng lên 24 ngôn ngữ

15/10/2026
DMCA.com Protection Status DMCA Compliance Information
TechTimes Vietnam
Facebook X (Twitter) Instagram YouTube LinkedIn TikTok
TechTimes là trang thông tin điện tử tổng hợp; Cơ quan chủ quản: Công ty TNHH TechTimes; Địa chỉ: 39/8A đường 475, khu phố 41, P. Phước Long, TP. HCM; Chịu trách nhiệm nội dung: Ông NGUYỄN VĂN ĐÔ; Giấy phép: Giấy phép thiết lập trang thông tin điện tử tổng hợp số 39/GP-STTTT do Sở Thông tin và Truyền thông Thành phố Hồ Chí Minh cấp ngày 21/08/2017; Giấy phép bổ sung số 23/GP-STTTT cấp ngày 23/03/2021 và quyết định cập nhật số 03/QĐ-STTTT-ICP do Sở TTTT cấp ngày 01/03/2024.

© 2026 TechTimes.vn - Cập nhật liên tục tin tức, đánh giá sản phẩm, chia sẻ kinh nghiệm sử dụng sản phẩm công nghệ cao, nhận định - phân tích từ chuyên gia uy tín - Email: info@techtimes.vn , Điện thoại: 0935014085• Powered by vHost

Gõ từ khoá và nhấn Enter để tìm kiếm bài viết trên TechTimes. Nhấn Esc để huỷ.