top of page

Mastering Repeaters in Wix with Velo

Updated: Jan 22






What are Repeaters in Wix?

Repeaters are powerful components in Wix that allow you to display lists or grids of items on your website. They are incredibly versatile and can be used for various purposes, from showcasing product catalogs to displaying blog posts or event listings.


Why Use Velo with Repeaters?

Velo by Wix is an open development platform that empowers you to take your Wix site to the next level. By using Velo with Repeaters, you can easily connect your repeater to a database, creating dynamic, data-driven experiences for your users.


Using Wix Velo on Repeaters


Step 1: Adding a Repeater to Your Wix Site


image how to add a repeater

  1. Open YourEditor: Log in to your Wix account and select the site you want to edit.

  2. Choose a Repeater: In the Editor, click on 'Add' and then 'List & Grids'. Choose a repeater style that suits your design needs.

  3. Place the Repeater: Drag and drop the repeater onto your page.


Step 2: Connecting Your Repeater to a Database


Image of Birds collection on Wix

  1. Create a Database: Click on 'Content Manager' and then 'Add Content Elements' to create a new database collection.

  2. Define Fields: Add fields to your database that correspond to the elements in your repeater (e.g., title, description, image).

  3. Add Data: Input the data you want to display in your repeater.

  4. Make the connection: Connect the repeater elements with the database fields.

Step 3: Using Velo to Enhance Your Repeater


We'll dive deeper into how Velo can be utilized to add advanced functionalities and interactive features to your repeater in Wix.


A. Interacting with Database Collections

Velo allows you to dynamically link your repeaters to database collections, enabling real-time content updates. Here’s how to do it:

  1. Link to a Database: Select your repeater and use the 'Connect to Data' option. Choose your database collection from the list.

  2. Bind Elements: Bind each element in the repeater (like text, images) to the corresponding field in your database.


B. Coding with Velo to Add Functionality

You can use Velo's coding capabilities to add custom behavior to your repeaters:

  1. Dynamic Filtering: Create functions to filter the displayed data based on user input. For example, you could allow users to filter products by category.

  2. Pagination and Sorting: Implement pagination to control how many items are displayed at once and sorting to arrange items in a specific order.


let currentPage = 1;
let itemsPerPage = 5;

$w.onReady(async function () {
    await loadRepeater();

    $w("#nextButton").onClick(() => {
        currentPage++;
        loadRepeater();
    });

    $w("#prevButton").onClick(() => {
        currentPage = Math.max(1, currentPage - 1);
        loadRepeater();
    });
});

async function loadRepeater() {
    const startIndex = (currentPage - 1) * itemsPerPage;
    const endIndex = startIndex + itemsPerPage;
    const itemsToDisplay = await fetchData(startIndex, endIndex);
    $w("#myRepeater").data = itemsToDisplay;
}

3. User Interactions: Add interactivity, like clicking on a repeater item to open a detailed view or triggering a modal with more information


$w("#myRepeater").onItemReady(($item, itemData, index) => {
    $item("#moreInfoButton").onClick(() => {
        openModalWithDetails(itemData);
    });
});

C. Advanced Customization

Velo allows you to programmatically modify the repeater's design and behavior, offering a higher degree of customization:


  1. Styling Based on Data: Change the styling of repeater items based on the data they contain. For example, highlight items that are on sale.

  2. Dynamic Layouts: Adjust the layout or display settings of the repeater based on user interactions or data conditions. This can include changing the number of columns in a grid layout or showing/hiding certain elements within each repeater item.


$w.onReady(function () {
    $w("#myRepeater").forEachItem(($item, itemData, index) => {
        if (itemData.isOnSale) {
            $item("#saleBadge").show();
        } else {
            $item("#saleBadge").hide();
        }
    });
});

3. Loading Dynamic Content: Dynamically load content into the repeater based on user actions or other triggers, such as scrolling or button clicks.


let lastLoadedIndex = 0;
const loadMoreItems = async () => {
    const additionalItems = await fetchData(lastLoadedIndex, 10);
    $w("#myRepeater").appendData(additionalItems);
    lastLoadedIndex += additionalItems.length;
};

$w("#loadMoreButton").onClick(() => {
    loadMoreItems();
});

D. Integrating with Third-Party APIs

You can also use Velo to integrate your repeater with external APIs, broadening the range of content and functionality on your Wix site:

  1. Fetching External Data: Use Velo to call external APIs and display the retrieved data in your repeater.

  2. Interactive Content: Combine data from external sources with user input to create interactive experiences, such as live sports scores, weather updates, or social media feeds.


import { fetchExternalData } from 'backend/fetchData';

$w.onReady(async function () {
    const externalData = await fetchExternalData();
    $w("#myRepeater").data = externalData;
});

Conclusion

By leveraging Velo with Wix Repeaters, you can create highly interactive, dynamic, and personalized user experiences. Whether it's for an e-commerce site, a blog, or a portfolio, the combination of Velo's programming capabilities and the visual appeal of Repeaters offers limitless possibilities for your website design and functionality. Remember, the key is to understand your audience's needs and tailor the repeater's behavior to enhance user engagement and satisfaction.


At CodeMasters, we're committed to helping you utilize these advanced features to create stunning, efficient, and user-friendly websites on Wix. Whether you're a beginner or an experienced developer, these tools offer you the flexibility to bring your creative visions to life. Happy coding, and feel free to reach out to us for any assistance or advice on your Wix Velo journey!

bottom of page