码迷,mamicode.com
首页 > 其他好文 > 详细

vue笔记

时间:2017-11-02 22:05:05      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:常见   动态   v-on   字段   false   model   添加   button   没有   

每一个vue实例可以看成是一个组件,el属性代表组件根元素的选择器:

new Vue({
        el: ‘#app-5‘,
        data: {
            message: ‘Hello Vue.js!‘
        },
        methods: {
            reverseMessage: function () {
                this.message = this.message.split(‘‘).reverse().join(‘‘)
            }
        }
    })

方法内的this指向vue实例。而且组件中上下文与vue实例是相互关联的,data和methods对象里的属性会被添加到vue实例上了:

技术分享

 

常见指令:

<div id="app">{{ message }}</div> :文本输出
<span v-bind:title="message">  :message单向绑定到title属性上(或其他任意名字的自定义属性)
<p v-if="seen">:if控制元素的显示与隐藏
<li v-for="todo in todos">{{ todo.text }}</li> :for循环
<button v-on:click="reverseMessage">绑定点击事件</button>
<input v-model="message">:双向绑定

 一个实例对象类似ng中的scope对象,也有一样的watch方法。

vm.$watch(‘a‘, function (newValue, oldValue) {
  // 此回调函数将在 `vm.a` 改变后调用
})

但很不同的是,ng中允许动态添加属性,而往vue上动态添加属性,则没有双向绑定的性质。vue实例创建时就设置好了对应属性的动态性,后续再添加进去的没有这个性质,所以后续可能用到的属性,就先放一个空值上去占位

data: {
  newTodoText: ‘‘,
  visitCount: 0,
  hideCompletedTodos: false,
  todos: [],
  error: null
}

通过vm操作的属性,实际是操作data对象(如果字段字段匹配的话):

// data 对象
var data = { a: 1 }
// 此对象将会添加到 Vue 实例上
var vm = new Vue({
  data: data
})

vm.a = 2
data.a // => 2
// ... 反之亦然
data.a = 3
vm.a // => 3

可见,只要把data抽出来,可实现两个组件共用数据

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>123</title>
    <script src="https://unpkg.com/vue"></script>
<body>
<div id="c1">
    {{msg}} <br>
    <input type="text" v-model="msg">
</div>
<div id="c2">{{msg}}</div>

<script>
    var common = {
        msg:"",
    };
    new Vue({
        el: #c1,
        data: common
    });
    new Vue({
        el: #c2,
        data: common
    });
</script>
</body>
</html>

vue笔记

标签:常见   动态   v-on   字段   false   model   添加   button   没有   

原文地址:http://www.cnblogs.com/hellohello/p/7774615.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!