vue

167 阅读1分钟

从父作用域将数据传到子组件

  // todo-item 组件现在接受一个
  // "prop",类似于一个自定义特性。
  // 这个 prop 名为 todo。
  props: ['todo'],
  template: '<li>{{ todo.text }}</li>'
})
<div id="app-7">
  <ol>
    <!--
      现在我们为每个 todo-item 提供 todo 对象
      todo 对象是变量,即其内容可以是动态的。
      我们也需要为每个组件提供一个“key”,稍后再
      作详细解释。
    -->
    <todo-item
      v-for="item in groceryList"
      v-bind:todo="item"
      v-bind:key="item.id">
    </todo-item>
  </ol>
</div>

阻止修改现有的属性

Object.freeze(obj)

ref

ref 如果是放在组建上 获取的是组建的实列 并不是dom元素

这个回调将在 vm.a 改变后调用

vm.$watch('a', function (newValue, oldValue) {

})

只渲染元素和组件一次.

This will never change: {{msg}}

计算属性的 getter

" class="hljs 
"> <p>Computed reversed message: "{{ reversedMessage }}"</p> </div> computed: { reversedMessage: function () { // `this` 指向 vm 实例 return this.message.split('').reverse().join('') } }

将触发状态更新

Vue.set(vm.items, indexOfItem, newValue)
vm.$set(vm.items, indexOfItem, newValue)
vm.items.splice(indexOfItem, 1, newValue)
vm.$set(vm.userProfile, 'age', 27)
多个属性
vm.userProfile = Object.assign({}, vm.userProfile, {
  age: 27,
  favoriteColor: 'Vue Green'
})

任何数据都不会被自动传递到组件里,因为组件有自己独立的作用域。为了把迭代数据传递到组件里,我们要用 props :

 <li
      is="todo-item"
      v-for="(todo, index) in todos"
      v-bind:key="todo.id"
      v-bind:title="todo.title"
      v-on:remove="todos.splice(index, 1)"
    ></li>

Vue.component('todo-item', {
  template: '\
    <li>\
      {{ title }}\
      <button v-on:click="$emit(\'remove\')">Remove</button>\
    </li>\
  ',
  props: ['title']
})

生命周期

------beforeCreate创建前状态------
 el     : undefined
 data   : undefined
 message: undefined
 ------created创建完毕状态------
 el     : undefined
 data   : [object Object]
 message: Vue的生命周期
 ------beforeMount挂载前状态------
 el     : [object HTMLDivElement]
 <div id=​"app">​…​</div>​
 data   : [object Object]
 message: Vue的生命周期
 ------mounted 挂载结束状态------
 el     : [object HTMLDivElement]
 <div id=​"app">​…​</div>​
 data   : [object Object]
 message: Vue的生命周期

弹性盒子模型 上下左右剧中

.flex-container {
           display: -webkit-flex;
           display: flex;
           justify-content:space-around; /*左右剧中*/
           align-items:center; /*上下剧中*/
           flex-wrap: wrap-reverse;/*换行*/
           width: auto;
           height: 250px;
       }

动画

中间件跨域

路由

vuex

单行数据流 状态只能渲染组件 如果后台有接口需要用acitons 提交 如果没有直接用mutations提交 不支持异步

提交add mutations