• 【技术积累】Vue.js中的核心知识【二】


    Vue中的常见指令有哪些

    1. v-bind:将数据绑定到HTML元素属性上,可以简写为“:”
    2. v-on:绑定事件,可以简写为“@”【例如@click表示点击事件,即点一下会发生什么】
    3. v-model:实现双向数据绑定
    4. v-show:根据表达式的值,控制元素的显示或隐藏【相当于Java中的if】
    5. v-if / v-else-if / v-else:根据表达式的值,条件性地渲染元素,当表达式为假时不渲染【相当于Java中的if/else if/else】
    6. v-for:遍历一个数组或对象,生成相应的DOM元素【相当于Java中的for循环,一个组件出现几次,塞不同的数据进去】
    7. v-text:将表达式的值作为元素的文本内容,可以简写为“{{ }}”
    8. v-html:将表达式的值作为HTML内容输出

    总之,Vue的指令非常丰富,可以很灵活地实现各种数据和视图之间的绑定关系。同时,Vue还支持自定义指令的开发,可以根据实际需求来扩展和定制指令。

    v-bind

    v-bind是Vue.js中的一个指令,其作用是将数据绑定到HTML元素的属性上。v-bind可以简写为“:”。

    例如,我们可以将背景颜色绑定到一个data中的变量color上:

    <div v-bind:style="{ backgroundColor: color }">这里的背景颜色会根据color变量的值而改变div>

    在上面的例子中,v-bind指令将style属性和一个JavaScript对象绑定在一起,这个JavaScript对象的属性名是CSS样式名,其属性值是绑定的数据color变量。

    我们还可以将属性名简写为不含有参数的指令名。例如,`v-bind:title="message"` 可以简写为 `:title="message"`。

    以下案例展示了v-bind的使用:

    <template>
      <div>
        <p>{{ message }}p>
        <button :disabled="!isClickable" @click="increment">点击我增加计数器值button>
        <p>计数器值:{{ count }}p>
      div>
    template>
    
    <script>
    export default {
      data() {
        return {
          message: "欢迎来到我的Vue应用",
          count: 0
        };
      },
      methods: {
        increment() {
          this.count++;
        }
      },
      computed: {
        isClickable() {
          return this.count < 5;
        }
      }
    };
    script>

    在上面的代码中,我们使用`v-bind:disabled`指令将按钮的disable属性绑定到了计算属性isClickable,当计数器值count大于等于5时,isClickable为false,按钮被禁用。在点击按钮时,计数器值会增加,绑定计数器值的文本会进行更新。

    v-on

    v-on是Vue.js中的一个指令,其作用是给HTML元素绑定事件。v-on可以简写为“@”。

    例如,我们可以给一个按钮绑定click事件:

    <button v-on:click="handleClick">点击我button>

    在上面的例子中,v-on指令绑定了click事件到handleClick方法上。当按钮被点击时,handleClick方法会被调用。

    我们还可以传递事件对象和自定义参数到事件处理函数中。例如,`v-on:click="handleClick('hello', $event)"`,代表使用handleClick方法处理click事件,传入参数 'hello' 和一个事件对象 $event。

    以下案例展示了v-on的使用:

    <template>
      <div>
        <p>{{ message }}p>  
        <button @click="reverseMessage">点击我反转上面的文本button>
      div>
    template>
    
    <script>
    export default {
      data() {
        return {
          message: "Hello Vue!"
        };
      },
      methods: {
        reverseMessage() {
          this.message = this.message.split('').reverse().join('')
        }
      }
    };
    script>

    在上面的代码中,我们使用`v-on:click`指令将按钮的click事件绑定到了reverseMessage方法上。当按钮被点击时,reverseMessage方法会被调用,反转message中的文本。

    v-model

    v-model是Vue.js中的一个指令,其作用是双向绑定表单元素和数据。

    例如,我们可以使用v-model将input元素的value属性和data中的变量message绑定在一起:

    <input v-model="message" />
    <p>{{ message }}p>

    在上面的例子中,当input的值发生变化时,data中的message变量会自动更新,同时p标签中的文本也会被更新。

    v-model指令通常用于处理表单元素,例如input、select和textarea。它会自动监听表单元素的input事件,并将最新的值同步到绑定的数据中,同时也会将绑定的数据同步到表单元素上。

    以下案例展示了v-model的使用:

    <template>
      <div>
        <input v-model="message" placeholder="请输入您的姓名" />
        <p>{{ message }}p>
      div>
    template>
    
    <script>
    export default {
      data() {
        return {
          message: ""
        };
      }
    };
    script>

    在上面的代码中,我们使用v-model将input元素的value属性绑定到data中的变量message上。当用户在输入框中输入文字时,data中的message变量会自动更新,同时p标签中的文本也会被更新。

    v-show

    v-show是Vue.js中的一个指令,其作用是根据表达式的值,在HTML元素之间切换显示和隐藏。

    例如,我们可以使用v-show根据一个变量isShow的值来显示或隐藏一段文本:

    <div v-show="isShow">
      这是一个需要根据表达式值来判断是否显示的文本。
    div>
    <button @click="toggleShow">点击我切换显示状态button>

    在上面的例子中,v-show指令将div元素的显示状态绑定到了一个变量isShow上。当isShow的值为true时,这个div元素会被显示,当isShow的值为false时,这个div元素会被隐藏。

    我们还可以通过方法来改变isShow的值,例如定义一个toggleShow方法来切换isShow的值。

    以下案例展示了v-show的使用:

    <template>
      <div>
        <div v-show="isVisible">
          这是一个可以显示和隐藏的文本内容。
        div>
        <button @click="toggleVisibility">点击我切换文本内容的显示状态button>
      div>
    template>
    
    <script>
    export default {
      data() {
        return {
          isVisible: true
        };
      },
      methods: {
        toggleVisibility() {
          this.isVisible = !this.isVisible;
        }
      }
    };
    script>

    在上面的代码中,我们使用v-show指令将一个div元素的显示状态绑定到了一个变量isVisible上。当用户点击按钮时,toggleVisibility方法会被调用,isVisble的值会被切换,从而根据isVisible的值来控制div元素的显示和隐藏状态。

    v-if / v-else-if / v-else

    v-if / v-else-if / v-else 是Vue.js中的条件渲染指令,用来根据条件显示或隐藏HTML元素。

    v-if指令用来判断条件是否成立,如果条件为true,则渲染元素,否则不渲染。

    例如,我们可以使用v-if来判断是否显示一段文本:

    <div v-if="isShow">这是一个需要根据条件是否显示的文本。div>

    在上面的例子中,v-if指令将这个div元素的渲染状态绑定到了一个变量isShow上,如果isShow的值为true,则这个div元素会被渲染,否则不会渲染。

    我们还可以使用v-else-if和v-else来实现条件分支,例如:

    <div v-if="score >= 90">优秀div>
    <div v-else-if="score >= 80">良好div>
    <div v-else-if="score >= 60">合格div>
    <div v-else>不及格div>

    在上面的例子中,当score变量的值大于等于90时,第一个div元素会被渲染,否则判断score的值是否大于等于80,如果大于等于80则显示第二个div元素,以此类推。如果以上条件都不成立,则显示最后一个div元素。

    以下案例展示了v-if / v-else-if / v-else的使用:

    <template>
      <div>
        <div v-if="isVisible">这是一个可以显示和隐藏的文本内容。div>
        <div v-else>这个文本内容是处于被隐藏状态的。div>
        <button @click="toggleVisibility">点击我切换文本内容的显示状态button>
      div>
    template>
    
    <script>
    export default {
      data() {
        return {
          isVisible: true
        };
      },
      methods: {
        toggleVisibility() {
          this.isVisible = !this.isVisible;
        }
      }
    };
    script>

    在上面的代码中,我们使用v-if / v-else指令来根据isVisible的值来判断文本内容应该显示还是隐藏。当用户点击按钮时,toggleVisibility方法会被调用,从而改变isVisible的值,决定文本内容显示或隐藏。

    v-for

    v-for是Vue.js中的一个指令,其作用是根据一组数据循环渲染HTML元素。

    例如,我们可以使用v-for指令循环渲染一个列表:

    <ul>
      <li v-for="item in list">{{ item }}li>
    ul>

    在上面的例子中,v-for指令根据一个名为list的数组,循环渲染li元素。循环过程中,每次迭代都会将list数组中的元素赋值给item变量,然后渲染li元素,最终生成一个包含所有数组元素的列表。

    我们还可以在v-for指令中使用索引变量:

    <ul>
      <li v-for="(item, index) in list">第 {{ index + 1 }} 项:{{ item }}li>
    ul>

    在上面的例子中,我们使用了一个索引变量index,它代表了list数组中当前元素的下标,然后使用index来输出当前项的序号。

    以下案例展示了v-for的使用:

    <template>
      <div>
        <ul>
          <li v-for="(item, index) in fruits" :key="index">
            {{ index + 1 }}:{{ item.name }}
          li>
        ul>
      div>
    template>
    
    <script>
    export default {
      data() {
        return {
          fruits: [
            { name: "苹果", price: 5 },
            { name: "香蕉", price: 3 },
            { name: "西瓜", price: 10 }
          ]
        };
      }
    };
    script>

    在上面的代码中,我们使用v-for指令循环渲染li元素,并使用索引变量index来输出当前项的序号。注意,在使用v-for指令时需要添加:key属性,以便Vue.js能够跟踪数据项的变化。

    v-text

    v-text是Vue.js中的一个指令,其作用是将元素的textContent属性与数据的值绑定在一起。

    例如,我们可以使用v-text指令将一个变量的值显示在HTML中:

    <div v-text="message">div>

    在上面的例子中,v-text指令将这个div元素的textContent属性绑定到了一个变量message上,当message的值改变时,这个div元素的文本内容也会相应地发生改变。

    另外,如果我们要在HTML中输出一个Vue.js表达式的值,也可以使用双大括号的语法:

    <div>{{ message }}div>

    在上面的例子中,双大括号语法将这个div元素的textContent属性绑定到了一个表达式message上,与v-text指令的效果是一样的。

    需要注意的是,双大括号语法并不会替换元素的innerHTML,而是替换textContent。如果我们需要在元素中包含HTML标签,则需要使用v-html指令。

    以下案例展示了v-text的使用:

    <template>
      <div>
        <div v-text="message">div>
        <div>{{ message }}div>
      div>
    template>
    
    <script>
    export default {
      data() {
        return {
          message: "Hello, Vue!"
        };
      }
    };
    script>

    在上面的代码中,我们使用v-text指令和双大括号语法分别将一个变量message的值输出到div元素中。当message的值改变时,这个div元素的文本内容也会随之改变。

    v-html

    v-html是Vue.js中的一个指令,其作用是将元素的innerHTML属性与数据的值绑定在一起。

    例如,我们可以使用v-html指令将一个变量的值作为HTML代码输出到HTML中:

    <div v-html="message">div>

    在上面的例子中,v-html指令将这个div元素的innerHTML属性绑定到了一个变量message上,当message的值改变时,这个div元素的HTML内容也会相应地发生改变。

    需要注意的是,使用v-html指令会带来一定的安全风险,因为它可以注入任意的HTML代码。如果我们要输出的HTML字符串来自用户输入或其他不受信任的来源,则需要对其进行特殊处理,以避免注入攻击。

    以下案例展示了v-html的使用:

    <template>
      <div>
        <div v-html="message">div>
      div>
    template>
    
    <script>
    export default {
      data() {
        return {
          message: "Hello, Vue.js!"
        };
      }
    };
    script>

    在上面的代码中,我们使用v-html指令将一个包含HTML标签的字符串输出到div元素中,结果会被解析为粗体样式的文本。

  • 相关阅读:
    只要让我戴上面具 , 我就会马上逃跑 ! 等下眼镜卡住了
    如何零基础自学 Python ?听我娓娓道来
    Logstash与FileBeat详解以及ELK整合详解
    传输层协议—TCP协议
    Android Framework学习之Activity启动原理
    Github Actions 自动同步到 Gitee
    【SpringSecurity】BCrypt密码加密和解密 一文学会使用BCryptPasswordEncoder
    git解决ssh: Could not resolve hostname gitlab.xxxx.com
    【Java】使用Java实现爬虫
    2023年【起重信号司索工(建筑特殊工种)】新版试题及起重信号司索工(建筑特殊工种)证考试
  • 原文地址:https://www.cnblogs.com/yyyyfly1/p/17497385.html