废话不多说,直接上干货
vue的核心:修改数据(model),html节点就会自动更新
(1)绑定数据:
- var vm;
- var count=1;
- $(function () {
- vm=new Vue({
- el: '#demo',
- data: {
- message: 'Hello World!',
- number: 2,
- ok:true,
- name:'whuang'
- }
- });
- vm.$watch('data', function (newVal, oldVal) {
- console.log('$watch');
- })
- });
html代码:
- <div id="demo">
- {{ message }}<br>
- {{ number + 1 }}<br>
- {{ ok ? 'YES' : 'NO' }}<br>
- {{ message.split('').reverse().join('') }}<br>
- {{ name | uppercase }}
- <hr>
- <input type="button" class="{{ ok ? 'cls1' : 'cls2' }}" value="更新数据" onclick="updateData2()" >
- </div>
(2)动态更新数据
- var updateData2= function () {
- vm.$data.message="更新后的数据"+(count++);
- vm.$data.ok=false;
- };
如何获取vue的data?
注意:data前面要加$
(3)vue表达式
- {{ number + 1 }}<br>
- {{ ok ? 'YES' : 'NO' }}<br>
- {{ message.split('').reverse().join('') }}<br>
- {{ name | uppercase }}
动态修改样式:
- <input type="button" class="{{ ok ? 'cls1' : 'cls2' }}" value="更新数据" onclick="updateData2()" >
在js方法中修改ok的值即可
(4)vue计算属性
- var vm = new Vue({
- el: '#example',
- data: {
- a: 1
- },
- computed: {
- // 一个计算属性的 getter
- b: function () {
- // `this` 指向 vm 实例
- return this.a + 1
- },
- upper: function () {
- return "<span style='color:red' >school</span>".toUpperCase();
- },
- haha: function () {
- return 'iloveyou'.split('');
- }
- }
- })
html代码:
- <div id="example">
- a={{ a }}, b={{ b }}<br>
- {{{ upper }}}<br>
- {{ haha }}<br>
- </div>
(5)监听数据的变化
执行结果:
new:更新后的数据1;old:Hello World!
(6)如何获取vue的节点和数据
节点:vm.$el
数据:vm.$data