【Vue】内置指令

内置指令

往期梳理:
v-bind : 单向绑定解析表达式,可简写为:xxx
v-model : 双向数据绑定
v-for : 遍历数组/对象/字符串
v-on : 绑定事件监听,可简写为@
v-if : 条件渲染(动态控制节点是否存在)
v-else:条件渲染(动态控制节点是否存在)
v-show : 条件渲染(动态控制节点是否展示)

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

v-html :
1.作用:向指定节点中渲染包含html结构的内容。
2.与插值语法的区别:
*v-html会替换掉节点中的所有内容,{{xx}}则不会。
*v-html可以识别html结构
3.严重注意:v-html有安全问题!!!
*在网站上动态渲染任意HTML是非常危险的,容易导致XSS攻击。
*一定要在可信的内容上使用v-html,不要用在用户提交的内容上。

v-cloak:
*本质是一个特殊属性,Vue实例创建完毕并接管容器后,会剩下v-cloak属性。
*使用css配合v-cloak可以解决网速慢时页面展示出{{xxx}}的问题。

v-once:
1.v-once所在节点在初次动态渲染后,就视为静态内容。
2.以后数据的改变不会引起v-once所在结构的更新,可以用于优化性能。

v-pre:
1.跳过其所在节点的编译过程。
2.可利用它跳过:没有使用指令语法、没有使用插值语法的节点,会加快编译。

v-ref:
1.获取此指令所在标签得DOM元素
2.可用在原生html标签中及组件标签中
3.在vue中使用this.$ref.名称可以获取到标签或组件的实例对象

案例

<html>
<head>
    <meta charset='UTF-8'>
    <title>内置指令</title>
    <script src='https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js'></script>
    <style>
        [v-cloak]{
           display: none; 
        }
    </style>
</head>
<body>
    <!--
        v-bind
    -->
    <div id='root'>
        <!-- 插值语法-->
        <div>nihao,{{name}}</div>
        <!-- v-text -->
        <div v-text="str1"></div>
        <!-- v-html -->
        <div v-html="str2"></div>
        <!-- v-clock -->
        <div v-cloak>{{str3}}</div>
        <!-- v-once -->
        <div v-once>初始n值为:{{n}}</div>
        <div>当前的n值为{{n}}</div>
        <button @click="n++">点我n+1</button>
        <div v-pre>{{n}}</div>
    </div>
</body>
<script>
    const vm = new Vue({
        el:'#root',
        data:{
            str1:'你的名字',
            str2:'<h3>你好</h3>',
            str3:'nihao',
            n:1
        }
    })
</script>
</html>

v-ref案例:

<template>
    <div>
        <h1 v-text="msg" ref="title"></h1>
        <button @click="showDOM">点我输出DOM</button>
        <School/>
    </div>
</template>
<script>
import School from './components/School.vue'
export default {
  components: { School },
    name:'App',
    data(){
        return{
            msg:'欢迎学习vue'
        }
    },
    methods:{
        showDOM(){
            console.log(this.$refs.title)
        }
    }
}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值