vue常用指令

v-once: 只会执行一次渲染,当数据发生改变时,不会再变化

<div id="app">
    <p v-once>{{msg}}</p>
    <input v-model="msg" type="text" />
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    let vue = new Vue({
        el:"#app",
        data:{
            msg:'今天气温'
        }
    })
</script>

v-html:解析HTML标签,渲染普通文本

<body>
	<div id="app">
		<h2 v-html="msg1"></h2>
		<h2 v-html="msg2"></h2>
	</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
	var	app= new Vue({
		el:'#app',
		data:{
			msg1: '我是msg1',
			msg2: '<h3>我是msg2</h3>'
		}
	})
</script>

v-text: 用于渲染普通文本,但不能解析HTML标签

<body>
    <div id="app">
        <h2 v-text="msg1"></h2>
        <h2 v-text="msg2"></h2>
    </div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    const vm = new Vue({
        el: '#app',
        data: {
            msg1: '我是msg1',
            msg2: '<span>我是msg2</span>'
        }
    })
</script>

{{ }} 模板语法:不能识别HTML标签

<body>
    <div id="app">
        <h2>{{msg1}}</h2>
        <h2>{{msg2}}</h2>
    </div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    const vm = new Vue({
        el: '#app',
        data: {
            msg1: '我是msg1',
            msg2: '<span>我是msg2</span>'
        }
    })
</script>

v-model:双向绑定,可以实现表单元素和Medel中数据的双向绑定

<body>
    <div id="app">
        <input type="text" v-model="msg" />
        <h2>{{msg}}</h2>
    </div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    const vm = new Vue({
    el: '#app',
    data: {
        msg: ''
    }
        })
</script>

v-bind: 绑定属性,比如:title,:class

<body>
    <div id="app">
        <h2 v-bind:title="msg">{{msg}}</h2>
        <input type="text" v-model="msg" />
    </div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    const vm = new Vue({
        el: '#app',
        data: {
      	  msg: 'Hello Vue!'
        }
    })
</script>

v-on: 监听 DOM事件

<body>
	<div id="app">
		<h2 v-on:click="run">{{msg}}</h2>
		<!-- 简写形式 -->
		<!-- <h2 @click="run"></h2> -->
	</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
  const vm = new Vue({
    el: '#app',
    data: {
      msg: 'Hello Vue! 点击我'
    },
    methods: {
      run: function() {
      alert('Hello')
      }
    }
  })
</script>

v-if:条件成立渲染,条件不成立就不会渲染这个元素

<body>
<div id="app">
  <h2 v-if="num > 10">num大于10我就出现</h2>
  <h2 v-else-if="num < 10">num小于10我就出现</h2>
  <h2 v-else>你上边两条都不好使</h2>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
const vm = new Vue({
  el: '#app',
  data: {
    num: 11
  }
})
</script>

v-show:简单的切换元素中的属性 display,如果条件不成立就会自动隐藏 display;none;

<body>
  <div id="app">
    <h2 v-show="num < 10">num小于10我就出现</h2>
  </div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
  const vm = new Vue({
    el: '#app',
    data: {
      num: 9
    }
    })
</script>

v-for:循环语句

<body>
  <div id="app">
    <p v-for="a in msg">{{a.name}}----{{a.sex}}-----{{a.age}} </p>
  </div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
  const vm = new Vue({
    el: '#app',
    data: {
    msg: [{
      name: "张三",
      sex: "女",
      age: "20"
    },
    {
      name: "李四",
      sex: "男",
      age: "18"}]
    }
  })
</script>
posted @ 2022-06-18 16:17  一只小狐疑  阅读(24)  评论(0)    收藏  举报