下面demo中使用 {{}} 的形式在 html 中获取实例对象对象中 data 的属性值;
这种使用 {{}} 获取值得方式,叫做 插值 或 插值表达式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <body> <div id= "div" > {{user_name}} </div> </body> // 两种引入方式,任意选择 <script src= "https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js" ></script> <script src= "./vue.js" ></script> <script> var app = new Vue({ el: '#div' , // 设置要操作的元素 // 要替换的额数据 data:{ user_name: '我是一个div' } }) </script> |
数据绑定
数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值:
1 | <span>Message: {{ msg }}</span> |
Mustache 标签将会被替代为对应数据对象上 msg 属性的值。无论何时,绑定的数据对象上 msg 属性发生了改变,插值处的内容都会更新。即便数据内容为一段 html 代码,仍然以文本内容展示
1 2 3 4 5 6 7 8 9 10 11 12 13 | <body> <div id= "div" > 文本插值 {{html_str}} </div> </body> <script> var app = new Vue({ el: '#div' , data:{ html_str: '<h2>Vue<h2>' } }) </script> |
浏览器渲染结果:
1 | <div id= "div" >文本插值 <h2>Vue<h2></div> |
打开浏览器的 控制台的REPL 环境 输入 app.html_str = '<s>vue</s>'
浏览器渲染结果就会立刻发生改变: <div id="div">文本插值 <s>vue</s></div>
Vue.js使用JavaScript表达式
Vue.js 都提供了完全的 JavaScript 表达式支持,但是不能使用 JS 语句;
(表达式是运算,有结果;语句就是代码,可以没有结果)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | <div id= "app" > <!-- 插值 插值表达式 --> <s>{{us}}</s> <!-- 插值表达式可以使用运算符 支持三元运算符 --> {{us>3? '大' : '小' }} <!-- 函数调用也可以 --> {{hh()}} <!-- 对象的调用 --> {{obj.name}} <!-- 但是不能写逻辑代码,如 if --> <!-- {{ if (us>1){ console.log(1) } else { console.log(0) }}} --> </div> </body> <script> var app = new Vue({ el: '#app' , data:{ us:1, hh: function (){ return 4+3; }, obj:{ name: '李四' } } }); // 打印 console.log(app); </script> |