• Vue指令


    写在前面

    这一篇主要介绍的是使用非完整版的 vue.js 做项目时,其中的 *.vue 文件的语法标准,以及每一部分的含义。

    1. <template></template>

    template 模板标签里包含的内容是要渲染在页面的内容,是 XML 语法格式,不是 HTML 语法格式,XML 和 HTML 语法基本类似,但是 XML 比 HTML 更加严格些,如在闭合标签这一块,XML 严格要求单标签必须闭合,如 <input/>,但在 HTML 中,单标签可闭合可不闭合,且最新的语法和推荐的语法是不闭合。

    还有就是在 XML 中,当标签内的内容为空时,可直接闭合,如 <div/> ,但是在 HTML 中则无这种语法。

    由于 XML 更加严格,因此 Vue 为了能更好地写 *.vue 文件的编译器,于是规定 template 模板标签里的内容必须用 XML 语法。

    2. <script></script>

    该标签内的语法为:

    <script>
        export default {
            options//里面的内容能写的和 new Vue(options) 里的一样,
            //只是不能有 template选项了,因为写在了外面<template>内
            //并且里面的 methods属性必须是函数
        }
    </script>
    

    3. <style></style>

    存放 css 代码,或者 scss 代码,用于给上述的 <template> 里的元素添加样式

    4. .vue 文件使用

    import Xxx from './xxx.vue' //Xxx是一个 options 对象
    new Vue({
        render: h=>h(Xxx)
    }).$mount('#app')
    

    5. HTML模板-template语法

    在这里 HTML 模板指的是符合 HTML 语法的字符串,在 Vue 中称之为 template 模板

    1.显示表达式

    直接在 HTML 模板中插入相应的表达式,简单理解就是在 HTML 模板中插入变量、表达式等数据

    文本插值

    文本插值是在 HTML 标签的内容里面插入表达式,将变量用 {{}} 包起来就会被当作变量编译

    {{ object.a }}
    
    {{ n+1 }} //n 是构造选项 options 里的 data 的数据属性
    
    {{ fn() }} //fn 是构造选项里的 methods 里的函数
    
    {{ null / undefined }} //如果表达式的值计算出来是 null 或 undefined ,则不显示在页面
    
    

    文本指令

    文本指令是通过添加 vue 指令将表达式写进标签内部

    <div v-text="表达式"> </div> 
    

    取消模板编译

    若想在 HTML 中插入的是 {{n}} 的普通字符串,则需要告诉 vue 该文本是普通字符串,不要编译,如下:

    <div v-pre> {{n}} </div> //{{n}}普通字符串,v-pre表示不会对模板编译
    

    2.显示富文本-HTML

    <div v-html="x"> </div> //x的内容为 html 字符串,会被解析成对应的 html 元素
    
    

    3.绑定属性

    在 HTML 标签的属性里插入变量或表达式,可以用文本插值 {{}},但不推荐,因为文本插值一般是用于标签内部的内容的,因此用新的属性绑定指令 v-bind

    <img v-bind:src="x"> </img> // x 是变量,会被编译
    
    //缩写
    <img :src="x"> </img> // 是上述的 v-bind: 的简写,直接在属性前加 :
    

    4.绑定对象

    <div :style="{border: '1px solid red', height: 100'}"> //这里可以把 100px 简写成 100
    </div>
    

    5.绑定事件

    <button v-on:click="add"> +1 </button> //函数名,在点击时会调用该函数 add()
    
    <button v-on:click="add(1,3)"> 加法 </button> //传参函数,在点击时执行该函数 add(1,3)
    
    <button v-on:click="n+=1">将n+1</button> //表达式,在点击时执行表达式
    
    //缩写
    <button @click="add"> +1 </button>
    

    6.条件判断

    <div v-if="x > 0">
        x大于0时展示的部分
    </div>
    <div v-else-if="x === 0">
        x等于0时展示的部分
    </div>
    <div v-else>
        x大于0时展示的部分
    </div>
    

    7.循环

    语法

    v-for = "(value,key) in 对象或数组"

    遍历数组

    <ul>
        <li v-for="(u,index) in users" :key="index"> //一定要绑定个 key 属性,值为 key 不重复的值,此处的 :key="index"有bug
            索引:{{index}} 值:{{u.name}}
        </li>
    </ul>
    

    遍历对象

    <ul>
        <li v-for="(value,name) in users" :key="name">
            属性名:{{name}} 属性值:{{u.value}}
        </li>
    </ul>
    

    8.显示与隐藏

    <div v-show="表达式"> </div> 当表达式为真时显示该模块

    <div v-show="n%2 === 0"> n是偶数 </div>

    9.总结

    Vue 用自己的指令来操作 DOM, 通过声明式编程将命令式编程简答化

  • 相关阅读:
    java -jar 远程调试
    正则
    python2和3的区别
    javaw 运行jar 指定编码
    windows kill 结束指定端口进程
    linux 查看nginx 安装目录
    node-mysql中防止SQL注入
    实用资源库和工具,极大缩减开发时间
    浏览器地址栏运行JavaScript代码
    css垂直居中方案
  • 原文地址:https://www.cnblogs.com/lovevin/p/13476835.html
Copyright © 2020-2023  润新知