Home > Web Front-end > Vue.js > body text

Getting started with Vue instructions: Let's talk about the six commonly used built-in instructions

青灯夜游
Release: 2022-06-09 20:21:46
forward
2845 people have browsed it

This article will take you through the Vue instructions and introduce the six commonly used built-in instructions in Vue. I hope it will be helpful to everyone!

Getting started with Vue instructions: Let's talk about the six commonly used built-in instructions

Instruction classification

Directives are the template syntax provided by vue for developers. The basic structure used to assist developers in rendering pages. (Learning video sharing: vuejs video tutorial)

The data used is defined in the data of the instance, and the event is defined in the methods of the instance Medium

  • Content rendering instructions: Assist developers to render the text content of DOM elements
  • Attribute binding instructions: Assist developers to Element's attributes dynamically bind attribute values
  • Event binding instructions: Assist developers to bind events to elements
  • Two-way binding instructions: Assist developers to quickly obtain form data without operating the DOM (changes in the data source will be synchronized to the page, and changes on the page will also be synchronized to the data source)
  • Conditional rendering instructions : Assist developers to control the display and hiding of DOM on demand
  • List rendering instructions : Assist developers to loop-render a list structure based on an array

1. Content rendering instructions

v-text

can only render plain text content, Will overwrite the original content inside the tag

<p v-text="gender">性别</p>
Copy after login

{{ }} The interpolation expression

can only render plain text content,Will not overwrite The original content inside the tag

<p>性别:{{ gender }}</p>
Copy after login

v-html

can render the tagged string into html content, will overwrite the original content inside the tag

<p v-html="info">该内容会被覆盖</p> <!-- info可以定义为html语句 -->
Copy after login

2. Attribute binding instructions

v-bind : or:

is the attribute of the element Dynamic Binding attribute value

<input v-bind:placeholder="tips"> <!--两种写法都可以-->
<input :placeholder="tips"> <!--两种写法都可以-->
Copy after login

Note: Interpolation expressions and v-bind Also supports the operation of javascript expressions

{{ 1 + 2 }}  //一元运算
{{ ok ? &#39;YES&#39; : &#39;NO&#39;}}  //三元运算
{{ message.split(&#39;&#39;).reverse().join(&#39;&#39;) }}  //字符串的反转
Copy after login
<div :id="&#39;list-&#39; + id"></div>  <!--字符串和变量的拼接-->
Copy after login

3. Event binding instructions

##v-on: Or @

Bind events for elements

<button v-on:click="add">+1</button> <!--两种写法都可以-->
<button @click="add">+1</button> <!--两种写法都可以-->
-----------------------------------------------------------
<script>
    //创建vue的实例对象
    const vm = new Vue({
        methods:{
            add(){
                this.count ++; //相当于vm.count ++;
            }
        }
    })
</script>
Copy after login

Pass parameters

    If no parameters are passed: there will be The default formal parameter
  • event is an object, and the target attribute inside points to the DOM element of the currently bound event
  • If you pass a parameter: event, it will be overwritten. In order to be usable If the parameter you pass can retain the event, you can manually pass another actual parameter
  • $event, and the formal parameter is optional
  • <button @click="add(1, $event)">+N</button>
    ------------------------------------------------------------
    <script>
        //创建vue的实例对象
        const vm = new Vue({
            methods:{                    
                add(n,event){
                    //修改
                    this.count +=n;
    
                    //判断
                    if(this.count % 2 === 0)
                        event.target.style.color = &#39;red&#39;;
                    else
                        event.target.style.color = &#39;&#39;;
                }                    
            }
        })
    </script>
    Copy after login

Event modifier

As long as it is an event, you can use the modifiers. Here are 5 commonly used

Event modifiersDescription.preventPrevent default behavior (for example: prevent the jump of a link, prevent the submission of the form).stopPrevent event bubbling.captureTrigger the current event handler in capture mode.onceThe bound event is only triggered once .selfOnly when event.target is the current element itself Trigger event processing function
<!--举个例子-->
<a href="http://www.baidu.com" @click.prevent="show">跳转到百度</button>
Copy after login

Key modifier

Modifiers that can only be used when triggering keyboard events are listed below 2 commonly used

key modifiers Description.escWhen pressing the esc key on the keyboard.enterWhen pressing the enter key on the keyboard
<!--举个例子-->
<!--keyup是事件名称     .esc是按键修饰符     clearInput是事件处理函数-->
<input type="text" @keyup.esc="clearInput">
Copy after login

4. Two-way binding instructions

##v-model##Quickly obtain form data (only applies to form elements , such as: input, textarea, select)

<input type="text" v-model="username">
Copy after login
<select v-model="city">
    <option value="">请选择城市</option>
    <option value="1">北京</option>
    <option value="2">上海</option>
    <option value="3">广州</option>
</select>
Copy after login

Exclusive modifier

Modifier that can only be used for v-model

Exclusive modifierDescription.numberAutomatically convert the value entered by the user to Numeric type .trim Automatically filters the leading and trailing blank characters entered by the user .lazy Data is automatically updated when focus is lost (generally updated in real time)
<!--举个例子-->
<input type="text" v-model.number="n1"> + <input type="text" v-model.number="n2"> = <span>{{ n1+n2 }}</span>
Copy after login

五、条件渲染指令

v-show

控制DOM的显示与隐藏(值为true显示,值为false隐藏),其原理为 动态添加/移除display:none样式 ,一般用于需频繁切换

<p v-show="flag">这是被 v-show 控制的元素</p>
Copy after login

v-if

控制DOM的显示与隐藏(值为true显示,值为false隐藏),其原理为 动态创建/移除元素 ,一般用于默认不展示且展示较少

<p v-if="flag">这是被 v-if 控制的元素</p>
Copy after login

v-else-if

配合 v-if 指令一起使用,否则将不会被识别

<div v-if="type === &#39;A&#39;">优秀</div>
<div v-else-if="type === &#39;B&#39;">良好</div>
<div v-else-if="type === &#39;C&#39;">一般</div>
<div v-else>差</div>
Copy after login

六、列表渲染指令

v-for

基于一个数组来循环渲染一个列表结构,它有特定的语法结构 v-for="item in items"

  • item是 被循环的每一项 ,名字随意
  • items是 待循环的数组 ,名字随意
<table>
    <thead>
        <th>索引</th>
        <th>ID</th>
        <th>姓名</th>
        <th>性别</th>
    </thead>

    <tbody>
        <!-- v-for还支持一个可选的第二个参数,即当前项的索引。语法格式为(item,index)in items -->
        <!-- 注意:item和index都是形参,可以根据需要进行重命名,如:(user,i)in userlist -->
        <!-- 注意:item和index除了可以被自己的子元素访问外,自身也可以使用 -->
        <!-- 注意:只有在需要用到索引时,才写这第二个参数 -->
        <tr v-for="(item,index) in list">
            <td>{{ index }}</td>
            <td>{{ item.id }}</td>
            <td>{{ item.name }}</td>
            <td>{{ item.gender }}</td>
       </tr>
    </tbody>
</table>
------------------------------------------------------------
<script>
    //创建vue的实例对象
    const vm = new Vue({
        data: {
            list: [
                { id: 1, name:&#39;张三&#39;, gender:&#39;男&#39; },
                { id: 2, name:&#39;李四&#39;, gender:&#39;女&#39; },
                { id: 3, name:&#39;王五&#39;, gender:&#39;男&#39; }
            ]
        }
    })
</script>
Copy after login

注意:在.vue文件中,只要用到 v-for指令 ,一定要绑定一个 :key 属性

  • key 的属性值尽量为 id,为 index 则无意义(因为index不和内容有一个强制的绑定关系)
  • key 的属性值只能是 字符串/数字 类型,否则报错
  • key 的属性值必须具有唯一性(不重复内容和值有一个强制的绑定关系
<tr v-for="(item,index) in list" :key="item.id">
Copy after login

(学习视频分享:web前端开发编程基础视频

The above is the detailed content of Getting started with Vue instructions: Let's talk about the six commonly used built-in instructions. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:juejin.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template