VUE-03-指令

vue指令

  指令的概念
  指令(Directives)是vue为开发者提供的 模板语法,用于 辅助开发者渲染页面的基本结构
  vue 中的指令按照不同的用途可以分为如下6大类:

  • 内容渲染指令
  • 属性绑定指令
  • 事件绑定指令
  • 双向绑定指令
  • 条件渲染指令
  • 列表渲染指令

  注意:指令是vue开发中最基础、最常用、最简单的知识点

1.内容渲染指令

1.1 内容渲染指令

  内容渲染指令用来辅助开发者渲染DOM元素的文本内容。常用的内容渲染指令有如下3个:

  • v-text
  • {
  • v-html
1.1.1. v-text

用法示例:

<!--把username对应的值,渲染到第一个p标签中-->
<p v-text="username"/p>

<!---把 gender对应的值,渲染到第二个p标签中-->
<!--注意:第二个p 标签中,默认的文本“性别”会被gender的值覆盖掉-->
<p v-text="gender">性别</p>

  v-text基本不用

1.1.2. {{}} : 插值表达式

  vue提供的{{}}语法,专门用来解决v-text 会覆盖默认文本内容的问题。这种 {{}} 语法的专业名称是插值表达式(英文名为:Mustache)。

<!--使用{{}插值表达式,将对应的值渲染到元素的内容节点中,-->
<!--同时保留元素自身的默认值-->
<p>姓名: {(username)}</p>
<p>性别:{{gender}</p>

  {{}} : 插值表达式 用的最多,只是内容的占位符,不会覆盖原有的内容

  注意:插值表达式不能用在元素的属性节点上,只能用在元素的内容节点上

1.1.3. v-html

  v-text 指令和插值表达式只能渲染纯文本内容。如果要把包含HTML标签的字符串渲染为页面的HTML元素,则需要用到v-html这个指令:

<!--假设 data中定义了名为 discription的数据,数据的值为包含 HTML 标签的字符串:-->
<!-- '<h5 style="color: red;">我在黑马程序员学习vue.js课程。</h5>' -->
<p v-html="discription"></ p>

1.1.4. el属性使用的注意点

  如果有多个标签,el只会选择第一个标签,最好给一个大元素

  例 内容渲染指令:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UACompatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue02</title>
</head>

<body>
    <!-- 希望vue能够控制下面的这个div,帮我们在把数据填充到div内部 -->
    <div id="app">
        <p v-text="userName"></p>
        <!-- v-text会覆盖元素内部原有的内容-->
         <p  v-text="gender">性别</p>
        <hr/>
        <p >姓名: {{userName}}</p>
        <p >性别: {{gender}}</p>  
        <hr/>
        <div v-html="info"></div>
    </div>

    <!-- 1.导入vue的库文件 在window全局就有了vue这个构造函数-->
    <script src="../js/vue-2.7.10.js"></script>
    <!-- 2.创建vue的实例对象  -->
    <script>
        const vm = new Vue({
            //el(element(元素)):固定写法,表示当前vm要控制页面上的哪个区域,接收的值是一个选择器
            el: "#app",
            //data: 要渲染到页面上的数据
            data: {
                userName: 'lisi',
                gender: "女",
                info: '<h4 style="color:red;font-weight:bold;">vuevue</h4>',
            }
        })
    </script>

</body>

</html>

2.属性绑定指令

  如果需要为元素的属性动态绑定属性值,则需要用到 v-bind 属性绑定指令。用法示例如下:

<div id="app">
    <input type="text" v-bind:placeholder="tips"/>
    <hr/>
    <img v-bind:src="photo" style="width:150px;height:auto"/>
</div>

<script>
    const vm = new Vue({
        //el(element(元素)):固定写法,表示当前vm要控制页面上的哪个区域,接收的值是一个选择器
            el: "#app",
        //data: 要渲染到页面上的数据
        data: {
            tips: "请输入用户名",
            photo: "https://sfc.vuejs.org/logo.svg",
        }   
    })
</script>

  vue-bind: 简写: :

 <img :src="photo" style="width:150px;height:auto"/>

  注意:在使用v-bind 属性绑定期间,如果绑定内容需要动态拼接,则字符串外面应该包裹单引号

box:字符串
index:变量
<div id="app">
    <div :title="'box' + index">这是一个div</div>
</div>
<script>
    const vm = new Vue({
    el: "#app",
        data: {
            index: 2,
        }
    })
</script>

3.使用JavaScript表达式

  在vue提供的模板渲染语法中,除了支持绑定简单的数据值之外,还支持Javascript表达式的运算,例如:

{{number + 1}}

{{ ok ? 'YES' : 'NO'}}

{{ message.split('').reverse().join('') }}

<div v-bind:id="'list-' + 'id'"></div>

4.事件绑定指令

  vue 提供了 v-on 事件绑定指令,用来辅助程序员为DOM元素绑定事件监听。语法格式如下:

<h3>count的值是:{{count}}</h3>
<!-- 语法格式为 v-on:事件名称="事件处理函数的名称" -->
<button v-on:click="addCount">+1</button>
posted @ 2022-09-05 16:32  ak阿坤ak  阅读(46)  评论(0编辑  收藏  举报