This time I will bring you the reasons why using v-show in vuejs does not work. What are the precautions for using v-show in vuejs? . The following is a practical case. Let’s take a look. take a look.
1.Official website concept description
v-if is 'true' conditional rendering, as it ensures that eventlisteners and child components within the conditional block are destroyed and recreated appropriately during the switch.
v-if is also lazy. If the condition is false during initial rendering, then nothing will be done - the conditional block will not start rendering until the condition is true for the first time. In comparison, v-show is very simple. More - - No matter what the initial conditions are, the element will always be rendered and simply switched based on css.
Generally speaking, v-if has a higher switching overhead, while v-show has a higher rendering overhead. Therefore, if very frequent switching is required, it is better to use v-show; if the conditions at runtime are not good It may change, it is better to use v-if.
2.Practical results
Excerpt: If you use v-if, the entire dom structure will not appear on the page at all. If you use v-show, it depends on the following conditions. If it is true, it will be displayed. If it is false, it will be added. Upstyle=”<a href="http://www.php.cn/wiki/927.html" target="_blank">display</a>:none
”. So, if it is a large component such as a component, I personally think it is better to use v-if. If it is something temporarily hidden, a It will be displayed, but v-show is more convenient. Comparing v-style and v-show, v-show is equivalent to the shortcut of v-style="display:none"
and v-style="display:block
" .
1. v-show not working problem
Recently I was using vue_element-ui
to develop a multi-page application, and encountered the problem that v-show
did not work.
a. Description of the problem, as shown below (the expected effect), where the data in the table changes dynamically, including the title, which will also change according to the background data. If the title returned by the background is empty, the content of the column will not be displayed. Otherwise, all data of the column will be displayed.
Then the effect shown in the picture above will appear, that is, v-show failed to hide the column data with the title value being null
b.Solution:
Change v-show to v-if to achieve the effect in Figure 1.
c. Summary (personal opinion):
Since el-table-column will generate multi-line label elements, v-show does not support template syntax, so it can be inferred that v-show cannot display or hide multiple elements? I wonder if it
It can be understood this way, I hope God can tell me! So in this case, v-if can only be used to achieve it.
In addition, when rendering multiple elements, you can use a <template>
element as a packaging element, and use v-if on it to perform conditional judgment. The final rendering will not Contains this element. At the same time, v-show
does not support the <template>
syntax.
I believe you have mastered the method after reading the case in this article. For more exciting information, please Pay attention to other related articles on php Chinese website!
Recommended reading:
Summary of several points you must know to improve Vue.js
Detailed explanation of vue calculated properties
The above is the detailed content of What are the reasons why using v-show in vuejs does not work?. For more information, please follow other related articles on the PHP Chinese website!