您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14572|回复: 0
打印 上一主题 下一主题

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({. E  p$ R( ?) `) v# A6 K
  2.   // 选项& Z( h# N1 C. @. |2 `2 M# a+ u3 Y4 E$ B/ f
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    ) j- u; b/ r: j! m4 g
  2.     <h1>site : {{site}}</h1>4 T  i& i: ~0 T# b/ |
  3.     <h1>url : {{url}}</h1>
    0 k" u, K. B( W. i
  4.     <h1>{{details()}}</h1>
    0 j; D" q' u5 n8 [- J; }$ g2 Z* U
  5. </div>
    2 y( t) _) r2 x+ B
  6. <script type="text/javascript">
    ' j$ K, b7 R$ i  t. @1 R7 m
  7.     var vm = new Vue({
    3 L* u. p. h! r
  8.         el: '#vue_det',( ]+ _5 y# }$ c1 T$ }: w, Z8 f
  9.         data: {
    3 N4 b! M4 H9 P' a% ]
  10.             site: "菜鸟教程",
    " c2 F0 x( N& a0 z6 V
  11.             url: "www.runoob.com",- v* |# |+ G2 ?
  12.             alexa: "10000"4 T& ^# k! {8 r
  13.         },
      H' Y, b8 q9 B+ p  E
  14.         methods: {7 s/ z# r) y2 t2 n" q6 d% u3 e( T8 z
  15.             details: function() {
    3 B. H) }* Q! B& O1 z# z# S2 u
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    " a3 l4 i0 x# b4 R* f
  17.             }
    * m$ A0 M& o! a; u; |
  18.         }; a* V2 n3 h. y& X) ]
  19.     })
    . Z0 `+ E: u  G$ D
  20. </script>
复制代码
可以看到在 Vue 构造器中有一个el 参数,它是 DOM 元素中的 id。在上面实例中 id 为 vue_det,在 div 元素中:
  1. <div id = "vue_det"></div>
复制代码
这意味着我们接下来的改动全部在以上指定的 div 内,div 外部不受影响。
接下来我们看看如何定义数据对象。
data 用于定义属性,实例中有三个属性分别为:site、url、alexa。
methods 用于定义的函数,可以通过 return 来返回函数值。
{{ }} 用于输出对象属性和函数返回值。
  1. <div id="vue_det">; O" B: |# N, r, ?  q: n7 {2 N( d
  2.     <h1>site : {{site}}</h1>3 m9 c& g% P7 K* H
  3.     <h1>url : {{url}}</h1>
    . V7 y$ F3 k" w, B8 D( }9 f
  4.     <h1>{{details()}}</h1>, V) l  }4 f4 ?! q& A
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    / Z- e2 P# i# s3 g, {' x
  2.     <h1>site : {{site}}</h1>
    6 k4 z1 F2 N9 o  l$ k6 C+ a
  3.     <h1>url : {{url}}</h1>8 \8 I5 E4 `9 M4 x
  4.     <h1>Alexa : {{alexa}}</h1>/ H- r) g5 ?: T& G
  5. </div>! d, M8 h' \# R* W! \
  6. <script type="text/javascript">
    1 ^/ o2 F7 l3 y: |& j4 g7 `
  7. // 我们的数据对象9 g1 y$ Z7 l; g8 }8 ]- t9 T
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}8 B0 y4 X8 V) y8 g* z! \
  9. var vm = new Vue({1 c* Z1 R6 O! C! T! i0 s+ K) _
  10.     el: '#vue_det',
    0 g' X6 v# H* _5 e) `% r
  11.     data: data
    / m" c1 k% I5 ]
  12. })/ e7 Q- r, @, z% u
  13. // 它们引用相同的对象!
    ( e4 K1 c+ ]% o' R. b0 Y1 B
  14. document.write(vm.a === data.a) // true
    + d) _/ Q( \0 Z9 F
  15. document.write("<br>")
    $ }, X6 q9 R- d& X6 S# W" h
  16. // 设置属性也会影响到原始数据" U) [6 y. U- ^
  17. vm.site = "Runoob"* |0 M- r' Z% H
  18. document.write(data.site + "<br>") // Runoob
    5 z0 H' a' _' p4 I

  19. " a( U/ V: `6 e. c/ R% l
  20. // ……反之亦然# b- H  \9 F+ Y7 ?4 u
  21. data.alexa = 1234
    4 f: g8 l( i2 G
  22. document.write(vm.alexa) // 12342 p$ t3 r+ t1 d- T' q5 x3 \
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">1 g1 M8 L) {$ t  S" Z1 p* x9 S+ l6 T
  2.     <h1>site : {{site}}</h1>
    # }0 G7 e0 `4 Z+ n
  3.     <h1>url : {{url}}</h1>
    9 @: N5 q$ l8 i8 g, F6 [
  4.     <h1>Alexa : {{alexa}}</h1>
    8 J. X" V+ \8 O
  5. </div>
      X6 S5 s% a* g  P1 S
  6. <script type="text/javascript">) [; }) m9 T8 ~1 g3 B* L) v4 z3 o. b0 L
  7. // 我们的数据对象
    ' |* }9 d+ g* M6 {  b0 v
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    & z- [& y' l5 X( D# H# s
  9. var vm = new Vue({
    8 I( W( x! O- m1 K4 t7 G: b0 m$ T
  10.     el: '#vue_det',. ]* G4 N" o3 `1 e. n( A8 b9 G
  11.     data: data
    ! v* [$ q1 i- E- W& M7 l
  12. })
    # {2 p; T) [/ l8 h# i3 G! g

  13. ) }* V5 l4 }! J6 I2 l
  14. document.write(vm.$data === data) // true1 b' F: r8 F; k
  15. document.write("<br>") // true
      e4 D/ Q* j* C" Y; d1 T
  16. document.write(vm.$el === document.getElementById('vue_det')) // true! {- b  g9 y% z: T* \0 O& w
  17. </script>
复制代码
  X  F1 c( d0 O- P' H  T& V6 U

4 r* _! U' N, {2 |* k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-4-30 19:03 , Processed in 0.061694 second(s), 21 queries .

Copyright © 2001-2026 Powered by cncml! X3.2. Theme By cncml!