03-Vue基础语法之指令语法与条件渲染

简介: 03-Vue基础语法之指令语法与条件渲染


昨天我们对Vue的插值语法有了初步的了解后,今天学习Vue的指令语法,让我们一起看下去吧

指令语法

1.v-bind ——强制绑定数据

特点:数据只能从data流向页面

语法:

`完整写法: <img v-bind:src="imgURL" alt="">
         简写 <img :src="imgURL" alt="">`

注意:v-bind一般用在标签属性中。这里的 v-bind: 使“ ”里的内容变为表达式

2.v-model——双向数据绑定

特点:数据不仅能从 data 流向页面,还能从页面流向 data

语法:v-mode:value="xxx" 或简写为 v-model="xxx"

注意:双向绑定能双向同步data值和页面值,它只能用在表单元素上(如: input、select等)

代码示例

<div id="app">
        <!-- //双向绑定 可用在input和textarea 中
        -->
        <!-- <input type="text" v-model="message"> -->
        <!-- <input type="text" :value="message" v-on:input="valueChange"> -->
       <input type="text" :value="message" @input="message = $event.target.value">
        <h2>{{message}}</h2>
        <textarea name="" id="one" cols="30" rows="10" v-model="message">
        </textarea>
        <p>输入的内容:{{message}}</p>
    </div>
    <script>
         /*
        v-model语法糖:
        1.v-bind绑定一个value属性
        2.v-on 指令给当前元素绑定input事件
         */
        const app =new Vue({
            el:'#app',
            data:{
                message:'你好啊'
            },
            methods:{
                valueChange(event){
                   this.message = event.target.value;
                }
            }
        })
    </script>

3.v-on——绑定事件监听

特点:绑定指定事件名的回调函数

语法:v-on:click =‘xxx’ 缩写为@

代码示例:

<div id="app">
        <h2>{{counter}}</h2>
        <h2></h2>
        <button @click="increment">+</button>
        <button  @click="decrement">-</button>
    </div>
    <script>
        /*v-on指令
        作用:绑定事件监听器
        缩写 @
        语法: Function|Inline Statement|Object
        参数: event
        */
      const app = new Vue({
        el:'#app',
        data:{
           counter:0
        },
        methods:{
            increment(){
             this.counter++
            },
            decrement(){
                this.counter--
            }
        }
      })
    </script>

v-bind和v-model的区别

Vue中的v-model和v-bind是两种不同的指令。

v-model是Vue中用于将表单元素的值绑定到Vue实例上的指令,常用于表单处理中。例如,可以使用

v-model指令将输入框、单选框、复选框等表单元素的值绑定到 Vue实例的数据上,实现双向数据绑定。

v-bind则是Vue中用于动态地绑定属性值的指令。通过v-bind指令,可以动态地将HTML元素的属性绑定到Vue实例的数据上。例如,可以使用v-bind指令将图片的src属性绑定到Vue实例的数据上,实现数据驱动的动态更新。

条件渲染指令

1.v-if指令

特点:不展示的DOM元素直接被移除。

语法:

  • v-if=" 表达式"
  • v-else-if=“表达式”
  • v-else=“表达式”
    注意:v-if可以和:v-else-if、v-else一起使用,但要求结构不能被“打断”。
    代码示例
<div id="app">
        <h2 v-if="score>=90">优秀  </h2>
        <h2 v-else-if="score>=80">良好  </h2>
        <h2 v-else-if="score>=60">及格 </h2>
        <h2 v-else>不及格  </h2>     
    </div>
    <script>
          const app =new Vue({
        el:'#app',
        data:{
            score:99,//可以随便改变数值
        },
        computed:{
            result(){
                let showMessage = '';
               if(this.score>=90){
                showMessage = '优秀'
               }else if(this.score>=80){
                showMessage = '良好'
               }
               return showMessage
            }
        }       
      })
       </script>

2.v-show指令

特点:不展示的DOM元素未被移除,仅仅是使用样式隐藏掉

语法:v-show=“表达式”

v-show:当条件为false时,v-show只是给我们元素添加一个行内样式:display:none

代码示例:

<div id="app">
        <!-- 
            v-if: 当条件为false时,包含v-if指令的元素,压根不会有对应的元素在dom中
          但只有一次切换时选择v-if
         -->
    <h2 v-if="isShow" id="111">{{message}}</h2>
    <!-- 在需要显示与隐藏之间切换频繁时使用v-show
        v-show:当条件为false时,v-show只是给我们元素添加一个行内样式:display:none -->
    <h2 v-show="isShow" id="hhh">{{message}}</h2>
</div>
    <script  >
    const app =new Vue({
        el:'#app',
        data:{
            isShow:true,
            message:'你好啊'
        }
      })
    </script>

总结

v-if : 如果为true, 当前标签才会输出到页面

v-else: 如果为false, 当前标签才会输出到页面

v-show : 通过控制display样式来控制显示/隐藏

v-for : 遍历数组/对象

v-on : 绑定事件监听, 一般简写为@

v-bind : 强制绑定解析表达式, 可以省略v-bind

v-model : 双向数据绑定

目录
相关文章
|
6天前
|
缓存 JavaScript UED
Vue 中实现组件的懒加载
【10月更文挑战第23天】组件的懒加载是 Vue 应用中提高性能的重要手段之一。通过合理运用动态导入、路由配置等方式,可以实现组件的按需加载,减少资源浪费,提高应用的响应速度和用户体验。在实际应用中,需要根据具体情况选择合适的懒加载方式,并结合性能优化的其他措施,以打造更高效、更优质的 Vue 应用。
|
6天前
|
JavaScript
如何在 Vue 中使用具名插槽
【10月更文挑战第25天】通过使用具名插槽,你可以更好地组织和定制组件的模板结构,使组件更具灵活性和可复用性。同时,具名插槽也有助于提高代码的可读性和可维护性。
13 2
|
6天前
|
JavaScript
Vue 中的插槽
【10月更文挑战第25天】插槽的使用可以大大提高组件的复用性和灵活性,使你能够根据具体需求在组件中插入不同的内容,同时保持组件的结构和样式的一致性。
11 2
|
6天前
|
前端开发 JavaScript 容器
在 vite+vue 中使用@originjs/vite-plugin-federation 模块联邦
【10月更文挑战第25天】模块联邦是一种强大的技术,它允许将不同的微前端模块组合在一起,形成一个统一的应用。在 vite+vue 项目中,使用@originjs/vite-plugin-federation 模块联邦可以实现高效的模块共享和组合。通过本文的介绍,相信你已经了解了如何在 vite+vue 项目中使用@originjs/vite-plugin-federation 模块联邦,包括安装、配置和使用等方面。在实际开发中,你可以根据自己的需求和项目的特点,灵活地使用模块联邦,提高项目的可维护性和扩展性。
|
6天前
|
缓存 JavaScript UED
Vue 中异步加载模块的方式
【10月更文挑战第23天】这些异步加载模块的方式各有特点和适用场景,可以根据项目的需求和架构选择合适的方法来实现模块的异步加载,以提高应用的性能和用户体验
|
JavaScript UED 前端开发
Vue1.0常用语法
var vm = new Vue({   el: "选择器", 挂载到页面的那个元素里,即确定vue的作用范围 外部可通过vm.$el访问,得到的是一个原生dom元素,可进行对应操作   a: '', //自定义属性 外部可通过vm.$options访问   data: {
3567 0
|
8天前
|
数据采集 监控 JavaScript
在 Vue 项目中使用预渲染技术
【10月更文挑战第23天】在 Vue 项目中使用预渲染技术是提升 SEO 效果的有效途径之一。通过选择合适的预渲染工具,正确配置和运行预渲染操作,结合其他 SEO 策略,可以实现更好的搜索引擎优化效果。同时,需要不断地监控和优化预渲染效果,以适应不断变化的搜索引擎环境和用户需求。
|
10天前
|
JavaScript
Vue 指令速查表
【10月更文挑战第12天】Vue 指令速查表
|
7天前
|
缓存 JavaScript 搜索推荐
Vue SSR(服务端渲染)预渲染的工作原理
【10月更文挑战第23天】Vue SSR 预渲染通过一系列复杂的步骤和机制,实现了在服务器端生成静态 HTML 页面的目标。它为提升 Vue 应用的性能、SEO 效果以及用户体验提供了有力的支持。随着技术的不断发展,Vue SSR 预渲染技术也将不断完善和创新,以适应不断变化的互联网环境和用户需求。
27 9
|
7天前
|
JavaScript 前端开发 UED
vue 提高 tree shaking 的效果
【10月更文挑战第23天】提高 Vue 中 Tree shaking 的效果需要综合考虑多个因素,包括模块的导出和引用方式、打包工具配置、代码结构等。通过不断地优化和调整,可以最大限度地发挥 Tree shaking 的优势,为 Vue 项目带来更好的性能和用户体验。