1.导入vue

  1. https://cn.vuejs.org/v2/guide/installation.html#CDN
  2. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

2 hello world

  1. <div id="app">
  2. <!-- 插值表达式 js的语法 -->
  3. {{msg.slice(0,3)}}
  4. </div>
  5. <script>
  6. /* 1.new一个vue的实例 */
  7. new Vue({
  8. /* 2.将vue实例挂载到app这个元素上 */
  9. el:"#app",
  10. /* 3.就是实例可以使用的数据 */
  11. data:{
  12. msg:"hello world"
  13. }
  14. })
  15. </script>


3 vue中的事件和获取data中的数据

  1. <div id="app" @click="handleClick">
  2. <!-- 插值表达式 js的语法 -->
  3. {{msg.slice(0,3)}}
  4. </div>
  5. <script>
  6. /* 1.new一个vue的实例 */
  7. new Vue({
  8. el:"#app",
  9. data:{
  10. msg:"hello world"
  11. },
  12. methods:{
  13. handleClick(){
  14. /* vue中获取data中的数据 直接获取,不需要加data*/
  15. console.log(this.$data.msg) //不推荐使用
  16. console.log(this.msg)
  17. }
  18. }
  19. })
  20. </script>

4 小程序中改变data中的数据

  1. <div id="app" @click="handleClick">
  2. {{msg}}
  3. </div>
  4. <script>
  5. new Vue({
  6. el:"#app",
  7. data:{
  8. msg:"hello world"
  9. },
  10. methods:{
  11. handleClick(){
  12. /* 小程序中改变data中的数据 */
  13. this.msg = "change"
  14. }
  15. }
  16. })
  17. </script>


5 for/在模板中给事件传参

  1. <div id="app">
  2. <!-- in/of都可以实现列表循环 推荐使用of -->
  3. <div v-for="(item,index) of arr"
  4. @click="handleClick(item.id)">
  5. {{item.name}} {{index}}
  6. </div>
  7. </div>
  8. <script>
  9. new Vue({
  10. el:"#app",
  11. data:{
  12. arr:[
  13. {name:"html",id:1001},
  14. {name:"css",id:1002},
  15. {name:"js",id:1003}
  16. ]
  17. },
  18. methods:{
  19. handleClick(id){
  20. console.log(id)
  21. }
  22. }
  23. })
  24. </script>


6 动态属性实现三元表达式

  1. <style>
  2. .red{
  3. background-color: red;
  4. }
  5. .yellow{
  6. background-color: yellow;
  7. }
  8. </style>
  9. <!--
  10. v-for
  11. :src
  12. 双引号中可以直接使用变量的
  13. -->
  14. <div id='app'>
  15. <img
  16. :class="isState?'red':'yellow'"
  17. @click="handleClick"
  18. :src="imgUrl" alt=""
  19. >
  20. </div>
  21. <script>
  22. new Vue({
  23. el:"#app",
  24. data:{
  25. isState:true,
  26. imgUrl:"images/logo.png"
  27. },
  28. methods:{
  29. handleClick(){
  30. this.isState = !this.isState;
  31. console.log(this.isState)
  32. }
  33. }
  34. })
  35. </script>


7 v-model

v-model可以实现双向数据绑定 ,视图更新数据更新。数据更新视图更新。

8 设计模式

  1. 小程序
  2. vue
  3. mvvm (纯数据驱动的框架,不需要操作DOM)
  4. mvc
  5. m model(数据层--database,http)
  6. v view(数据层 -- html,css)
  7. c controller(路由<逻辑>控制层--js)
  8. mvvm
  9. m--model
  10. v--view
  11. vm--viewModel对象(视图数据对象) wechat Page() Vue --new Vue({})

9 $set

  1. var vm = new Vue({
  2. el:"#app",
  3. data:{
  4. obj:{
  5. name:"cheng"
  6. }
  7. }
  8. })
  9. vm.$set(vm.name,"age",19)

10 $el,$options

$el 获得当前元素的DOM

  1. console.log(vm.$el)
  2. //输出
  3. <div id="app">
  4. {{ message }}
  5. </div>

$ options

显示vm的初始化选项

  1. $_devtoolsPerfHooks: true
  2. beforeCreate: [ƒ]
  3. beforeDestroyed: [ƒ]
  4. beforeMount: [ƒ]
  5. beforeUpdate: [ƒ]
  6. components: {}
  7. created: [ƒ]
  8. data: ƒ mergedInstanceDataFn()
  9. destroyed: [ƒ]
  10. directives: {}
  11. el: "#app"
  12. filters: {}
  13. mounted: (2) [ƒ, ƒ]
  14. render: ƒ anonymous( )
  15. staticRenderFns: []
  16. updated: [ƒ]
  17. _base: ƒ Vue(options)
  18. __proto__: Object

11 $mount

  1. <div id="app">
  2. {{ msg }}
  3. </div>
  1. let vm = new Vue({
  2. data:{
  3. msg:"hello world"
  4. }
  5. }).$mount("#app");