一眼就能懂得Vue指令

125 阅读1分钟

Vue概述

构建用户界面的渐进式JavaScript框架。

Vue安装

1、独立版本

我们可以在 Vue.js 的官网上直接下载 vue.min.js 并用   标签引入。

2、使用 CDN 方法

以下推荐国外比较稳定的两个 CDN,国内还没发现哪一家比较好,目前还是建议下载到本地。

Vue实例化

1.模板

<div id="app"></div>

2.创建app

const app= Vue.createApp({
    data() {return {}}
})

3.挂载

app.mount("#app")

内置指令

内置指令v-开头的特殊属性 联系html模板与JavaScript数据类型

文本渲染

v-text指令

  • ​ 1.作用:向其所在的节点中渲染文本内容。
  • ​ 2.与插值语法的区别:v-text会替换掉节点中的内容,{{xx}}则不会。

v-html指令

  • ​ 1.作用:向指定节点中渲染包含html结构的内容。
  • ​ 2.与插值语法的区别:
  • ​ (1).v-html会替换掉节点中所有的内容,{{xx}}则不会。
  • ​ (2).v-html可以识别html结构。

属性渲染

v-bind指令

  • HTML 属性中的值应使用 v-bind 指令。
  <div id="app">
        <p v-bind:title="msg">我是一个</p>
        <p :title="msg">我是一个</p>
        <button :disabled="!canUse">按钮</button>
    </div>
</body>
<script>
    Vue.createApp({
        data() {
            return {
                msg: "Vue3 棒棒",
                canUse: false,
            }
        }
    }).mount("#app")

条件渲染

v-if-else指令

  • ​ v-if : 条件渲染(动态控制节点是否存存在)
  • ​ v-else : 条件渲染(动态控制节点是否存存在)
<div id="app">
    <p v-if="isLog">欢迎回来,我的主人</p>
    <p v-else>请登录后操作!</p>
</div>
<script>
    Vue.createApp({
        data() {
            return { isLog: false }
        }
    }).mount("#app")
</script>

v-show指令

  •  v-show : 条件渲染 (动态控制节点是否展示)

v-show与v-if指令


<div id="app">
    <p v-if="can">我会显示的</p>
    <p v-show="can">我也会显示show</p>
</div>
<script>
    Vue.createApp({
        data() {
            return { can: false }
        }
    }).mount("#app")
// v-show是通过css方法隐藏节点
// v-if直接移除节点方式隐藏
// 如果频繁切换显示与隐藏 v-show
// 偶尔切换显示隐藏用 v-if

列表指令渲染

v-for指令

  • ​ v-for : 遍历数组/对象/字符串
<div id="app">
    <ul>
        <li v-for="(item,index) in list" :key="item">{{item}}-{{index+1}}</li>
    </ul>
    <!-- key属性为了让Vue内部给遍历的节点给一个唯一的标识,以便更好的去(排序过滤等操作)为了性能优化;key的要唯一 -->
</div>
<script>
    Vue.createApp({
        data() {
            return { list: ["Vue", "react", "angular"] }
        }
    }).mount("#app")

</script>
  1. item 变量的当前数据
  2. index 当前的下标

v-for遍历对象

<div id="app">
    <div v-for="(value,key) in obj" :key="key">{{key}}:{{value}}</div>
</div>
<script>
    Vue.createApp({
        data() {
            return { obj: { title: "Vue3入门", author: "木木", pdate: "2022-2-24" } }
        }
    }).mount("#app")

</script>

v-for范围

<div id="app">
    <p v-for="item in 5">{{item}}</p>
</div>
<script>
    Vue.createApp({
        data() {
            return {}
        }
    }).mount("#app")

</script>

v-for与v-if同时使用时用template

<div id="app">
    <template v-for="item in 10">
        <p v-if="item%2===0">{{item}}</p>
    </template>

</div>
<script>
    Vue.createApp({
        data() {
            return {}
        }
    }).mount("#app")

</script>

Vue事件

v-on指令

  • ​ v-on : 绑定事件监听, 可简写为@
<div id="app">
    <p>
        <button @click="say">你好</button>
    </p>
</div>
<script>
    Vue.createApp({
        data() {
            return { num: 1 }
        },
        methods: {
            say(e) {
                console.log(e, e.target);
                alert("别点我" + this.num);
                this.num++;
            }
        }
    }).mount("#app")
</script>

备注:

​ 1.指令定义时不加v-,但使用时要加v-;

​ 2.指令名如果是多个单词,要使用kebab-case命名方式,不要用camelCase命名。