LogoLogo
InstallSource CodeIssuesSupport
v1.x
v1.x
  • Introduction
  • Essentials
    • Installation
    • Configuration
    • Creating Components
    • Rendering Views
    • Data Properties
    • Actions
    • Events
    • Lifecycle Events
  • Component Features
    • Redirecting
    • Logging
  • Templates
    • Loading States
    • Polling
    • Prefetching
    • Offline State
    • Dirty States
    • Defer Loading
  • JS Integrations
    • AlpineJS
    • Inline Scripts
  • Testing
  • Security
  • Troubleshooting
  • CommandBox Commands
Powered by GitBook
On this page
  • Initializing Properties
  • Referencing Properties
  • Things To Know

Was this helpful?

  1. Essentials

Data Properties

Similar to Vue.js and other frontend JavaScript frameworks, you can define and initialize reactive properties on your cbwire components.

Initializing Properties

You can define and initialize reactive properties on your cbwire components using variables.data.

When data properties are mutated, the UI will update also.

// File: wires/Counter.cfc
component extends="cbwire.models.Component"{
    variables.data = {
        "counter": 0
    };
    ...
}

Referencing Properties

You can reference a property directly in your component using variables.data.[ property name ].

// File: wires/Counter.cfc
component extends="cbwire.models.Component"{

    // Data properties
    variables.data = {
        "counter": 0
    };
    
    // Action called from UI
    function increment(){
        variables.data.counter += 1;
    }
    ...
}

You can also reference any defined properties from your cbwire component view using args.[ property name ].

// File: views/wires/counter.cfm
<cfoutput>
<div>
    <h1>Counter</h1>
    <div>Count: #args.counter#</div>
</div>
</cfoutput>

Things To Know

Your component's private variables scope will hold your data property definitions and current values, which is seemingly secure, but it's necessary to be cautious about what you store. cbwire communicates with the server via Livewire using AJAX requests and includes the current state of the data properties within those requests.

You should NEVER store sensitive data ( such as passwords, SSNs ) that you wouldn't want your application's users to see.

Data properties can only be data types that are castable to JavaScript data types, such as CFML strings, numeric, arrays, structs, or booleans.

PreviousRendering ViewsNextActions

Last updated 3 years ago

Was this helpful?

cbwire includes the current values of the data properties during requests to determine what state has changed and if Livewire should update the .

DOM