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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({) u9 _# E' X8 m8 }( H; }
  2.   // 选项
    5 \3 j! g" u8 ^' G
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">( G: G$ D3 L: j8 {( G; h3 q
  2.     <h1>site : {{site}}</h1>
    / l2 a% ?1 H$ w0 R+ K* Z
  3.     <h1>url : {{url}}</h1>& N; o9 X3 Z: p' E: I7 O+ Z
  4.     <h1>{{details()}}</h1>
    : `% A5 ]9 X! C: s# R/ S7 S
  5. </div>+ D" j; Y# J; u3 D+ O' _7 M. Z
  6. <script type="text/javascript">
    + z; c7 d) L. e. [
  7.     var vm = new Vue({
    8 U9 h0 w9 }7 E; f4 f
  8.         el: '#vue_det',
    ; L& s7 L  O" o7 P5 y* |$ i  D
  9.         data: {
    / W" \/ n/ `0 `& y5 F$ V
  10.             site: "菜鸟教程",
    1 {4 u% |9 b8 D5 P4 K) }  N
  11.             url: "www.runoob.com",- x* q( [9 _+ a; e: D
  12.             alexa: "10000"8 ^# F% M- U* L5 ^$ u% G1 M
  13.         },, ~2 X3 N, L7 M! \
  14.         methods: {
    ! r- t7 i. c& x/ r* {$ \: S
  15.             details: function() {
    9 s1 c) {; Z" y) [/ E
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";4 g5 U0 I7 m% ^) Y0 z
  17.             }
    1 \9 h# t$ l" f' W
  18.         }
    " N$ k  H8 [) K) T) h: e
  19.     })" _- r1 q1 f/ z# {
  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">
    ) K6 q5 W0 e6 |$ y$ _0 |
  2.     <h1>site : {{site}}</h1>
    2 A" ?1 ~( k2 j9 o+ t$ b5 \4 v
  3.     <h1>url : {{url}}</h1>2 M  Y4 d: e$ D! i
  4.     <h1>{{details()}}</h1>
    3 g1 w- s2 m$ w3 D5 m3 k6 Z* B
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    2 l8 F; w8 X3 O! }8 T
  2.     <h1>site : {{site}}</h1>3 f. Y: u$ m& G* L- Y
  3.     <h1>url : {{url}}</h1>
    4 D, p, O( @6 x" s( _, J$ a
  4.     <h1>Alexa : {{alexa}}</h1>' m/ k) y/ S2 @  F# b4 B
  5. </div>
    4 {8 n/ Z: L& h
  6. <script type="text/javascript">
    ' t: ^7 G3 u' e5 N8 T8 r
  7. // 我们的数据对象
    0 ~# l0 n  @+ @: E% k6 O' R
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}$ }. p8 O- E, F9 v
  9. var vm = new Vue({
    - {* S) ^& D8 K+ r# \( z1 _8 Z
  10.     el: '#vue_det',
    # S$ \! @) k1 `3 M6 V) L9 l5 \" W
  11.     data: data2 g/ Y9 L1 w( a0 i8 s+ K2 r
  12. })" }' L$ \9 t! @* m
  13. // 它们引用相同的对象!
    7 q5 [- K) d4 D- B4 T# L9 ^
  14. document.write(vm.a === data.a) // true/ u: ~1 K4 k4 |4 g1 O
  15. document.write("<br>")
    : X9 y. k" Z9 ]
  16. // 设置属性也会影响到原始数据
    ! r/ x* _% H: N5 S
  17. vm.site = "Runoob"
    & I  g6 w  \: x& [- h6 b
  18. document.write(data.site + "<br>") // Runoob
    5 d, e' R. e$ d5 }- M

  19. " ^) K! z% @! l$ C
  20. // ……反之亦然
    9 U9 y% f1 E) X2 {4 D* C; B
  21. data.alexa = 1234% }4 x- Y9 }( S+ e
  22. document.write(vm.alexa) // 12341 X9 J9 m! l/ t# |% @  J/ L2 l
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    ( [* |2 p' u/ a$ C" K. V. t9 z5 l
  2.     <h1>site : {{site}}</h1>
    4 z& t4 y3 A* I( u
  3.     <h1>url : {{url}}</h1>
    1 N$ ~8 V, Z4 D* u+ v1 z
  4.     <h1>Alexa : {{alexa}}</h1>* `7 P$ |% D: v+ m$ s
  5. </div>
    8 V; e- v  ]! V/ v7 g- L  d
  6. <script type="text/javascript">
    . q' f" N5 n5 \8 o
  7. // 我们的数据对象
    7 K- F0 d# J7 D) N2 }
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}8 e& H" |5 v) F0 J( a6 U  B
  9. var vm = new Vue({
    2 Y0 [& V5 I3 p/ q/ W
  10.     el: '#vue_det',
    9 D6 i# \) C$ ]5 c$ T" ^+ c- Q
  11.     data: data
    9 a- r3 j5 ]* t: Q
  12. })
    , Z  O4 G; N7 o2 Q  ?8 ^. t

  13. ; U% W" v- g% [6 [8 Q" \: i) [
  14. document.write(vm.$data === data) // true
      J* Q* F! O6 O+ a
  15. document.write("<br>") // true
    , N+ @+ [  \; r7 M/ L% u; Q
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    8 S7 X  v; \( Q+ u4 N
  17. </script>
复制代码

; i1 w; l0 T( F6 s" m" v
+ ~+ ^; y" ~# ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 15:52 , Processed in 0.111527 second(s), 20 queries .

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