通过使用 v-once 指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更新。
写几行代码对比下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<p v-once>输入框的值:{{ msg }}</p>
<p>输入框的值:{{ msg }}</p>
<input type="text" v-model="msg">
</div>
<script>
var app = new Vue({
el: '#app',
data: {
msg: "hello world"
},
methods: {
}
})
</script>
</body>
</html>
发现第一个值一直不变,第二个值随着输入框输入值的变化不断变化,如果进入页面后,展示的信息不会再做更改,可以使用v-once,使用了v-once的元素/组件及其所有的子节点,只会渲染一次,后面的渲染都会被当作静态内容跳过,可以优化性能。