# FAQs
## Visual Application FAQs
### Is there a global variable that can be accessed by all pages?
There is no such a global variable.
### How do I obtain DOM elements?
You can obtain DOM elements via the **ref** attribute. You can use methods of the obtained elements but cannot change their attributes. The sample code is as follows:
```
.
/* index.js */
export default {
data: {
images:[
{src:"common/frame1.png"},
{src:"common/frame2.png"},
{src:"common/frame3.png"}
]
},
handleClick(){
// Obtain the component through the $refs attribute. (The ref attribute of the component has been set to animator in the HML file.)
const animator = this.$refs.animator;
const state = animator.getState();
if(state == "paused"){
animator.resume();
}else if(state == "stopped"){
animator.start();
}else{
animator.pause();
}
}
}
```
### How do I pass values between pages?
You can pass values through **params** of the **router.replace** method. The sample code is as follows:
Set **params** to the values to be passed on a page.
```
router.replace({
uri:'pages/detail/detail', // URI of the page to switch to.
params:{transferData:this.data} // Data to be transferred. You need to define the data amount and name.
});
```
Receive the passed values on another page.
```
onInit(){
const data = this.transferData; // Receive the transferred data by the onInit function.
}
```
### How do I scroll a list to an item?
Call the **scrollTo** method of the list. The input parameter of this method is the index of the target item. You can specify an item index, or obtain the index through the **scrollend** event.
### Does the **** component support multiple lines?
Yes. You can use the Enter key to start a new line. Alternatively, the component automatically starts a new line based on the content, without the need to set the height attribute of the text.
### Why is a component not displayed?
**Description**
The component added to the **.hml** file cannot be displayed.
**Possible Causes**
- The width and height of the component may not be set.
- The style setting may be incorrect.
**Solution**
\(1\) Check whether the width and height values are set explicitly.
\(2\) Check whether the style of the component is set correctly.
### How do I implement scrolling on a page?
There are three ways to implement page scrolling: **scroll**, ****, or ****. For a root component with **scroll** set, the scrolling effect is automatically implemented when the component size exceeds the screen size. For details, see the development specifications.
### Why do not the **left** and **top** attributes take effect?
**left** and **top** attributes must work with the **** component in addition to the root component.
### Why does not dynamic binding take effect?
The object or its attributes are not defined before dynamic binding.
### How do I implement relative and absolute positioning?
You can use the **** and **
** \(with **top** and **left** attributes\) components.
### How do I display or hide a component?
You can use **display**, **show**, or **if**. When an **if** clause evaluates to **false**, the corresponding component will be removed from the VDOM. When **show** is set to **false**, the component will be invisible during rendering, but will not be removed from the VDOM.
### What are the precautions for using the **margin** attribute?
The **margin** attribute cannot be set for child components of the **** component.
### What are the precautions for event subscription?
Only one page exists when the application is running. Therefore, the **router.replace** function destroys the previous page and then creates a new one. For pages involving event subscription, an event should be subscribed every time a page is created, and unsubscribed before page switching.
### What are the precautions for using dynamic binding?
Do not use too many dynamic bindings because they consume too much memory.
### How does the **loop** attribute take effect for ****?
If the total length of the child components, except for the first and last ones, is greater than the length of ****, the **loop** attribute takes effect.
### What are the precautions for using an array?
Do not include too many elements in an array. Avoid frequent operations on a large array.