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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    4 n0 N+ F2 x# m8 E; v0 H
  2.   // 选项
    9 ~7 O( Y; Z, @( b' H+ `/ K
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    " J! L. L/ P! z, A1 n
  2.     <h1>site : {{site}}</h1>$ {0 ]8 k% `8 ~3 m/ l3 Q) v
  3.     <h1>url : {{url}}</h1>
    7 I5 q8 D: X1 g" f
  4.     <h1>{{details()}}</h1>
    5 W( I: F8 G& d, q% z- W+ L7 W
  5. </div>
    ( b$ p  i. }9 c( _9 ^' `
  6. <script type="text/javascript">
    $ Q2 i/ ~+ R/ f+ \* \0 ?  P
  7.     var vm = new Vue({
    $ Y( m- ^, M0 E$ R$ y
  8.         el: '#vue_det',8 Z6 i3 O8 h! V, I2 r6 ^
  9.         data: {, k; C# r9 L: n+ U
  10.             site: "菜鸟教程",! ^3 @1 H9 F* Q6 B
  11.             url: "www.runoob.com",
    ( ^' J7 C6 _, U
  12.             alexa: "10000"
    . S8 b0 J/ {5 @6 s4 I3 o
  13.         },
      f% |' W9 S/ M8 U5 B* M2 U! y
  14.         methods: {
    * c, z$ s  _: V, o4 H. o
  15.             details: function() {
    % A4 L" z1 S3 }* K  p' [: o3 F2 Y
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";3 {# c5 ~; c$ U) u: O
  17.             }
    ( f5 a" a' ]$ |$ g
  18.         }+ t$ H# O& B2 u6 v$ @
  19.     })& @5 W; ]% R7 n2 w. O
  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">2 {3 F( |/ M! \6 f+ d3 ?
  2.     <h1>site : {{site}}</h1>
    # B, i; W1 N  H1 o6 n; ]$ I  `  w
  3.     <h1>url : {{url}}</h1>5 y+ C/ P  x8 ]3 ~
  4.     <h1>{{details()}}</h1>
    5 m6 I' [. p0 m, [, K( c% ?
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    $ h% @  L4 v, B9 @; L
  2.     <h1>site : {{site}}</h1>
    , B+ }5 ]4 T. O  [9 W2 K
  3.     <h1>url : {{url}}</h1>
    ( s4 d6 C" c, j7 u* t, s
  4.     <h1>Alexa : {{alexa}}</h1>  ]& q( I. r9 p; w8 L
  5. </div>
    ) e& A: a% \6 `9 ]
  6. <script type="text/javascript">2 j+ h5 }6 y6 o# b; T1 ~5 _% B
  7. // 我们的数据对象
    2 ~$ q4 _6 J, }7 F& |5 L- ~
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}4 Z' ]1 v+ @! O( H5 T
  9. var vm = new Vue({( ?- W% j1 m  t. ~7 f. \
  10.     el: '#vue_det',
    / A& Q5 H3 m1 \5 m8 ^7 J
  11.     data: data4 K/ `% s  X$ k% m. l9 r
  12. })6 j/ R! ^+ b/ g4 l. t  T4 |, X
  13. // 它们引用相同的对象!
    ; i4 W1 _/ p* _5 ?9 k
  14. document.write(vm.a === data.a) // true$ y% K3 P4 j! S( W
  15. document.write("<br>")& w7 M, |6 ?; F4 C7 u& J
  16. // 设置属性也会影响到原始数据% A) m! P. {2 }1 U5 @' {
  17. vm.site = "Runoob"
    ' f. i) W* C. f# ]* d* R
  18. document.write(data.site + "<br>") // Runoob
    : J# h8 a5 N$ y. L* q; O

  19. - V  _1 D" [4 b; E
  20. // ……反之亦然
    ' t1 S! A, k' q/ Q6 ^. X
  21. data.alexa = 1234! B2 t) ]2 s6 e' o% r% L7 ]2 Q; m1 J
  22. document.write(vm.alexa) // 1234( u1 Q* v/ t/ R6 v- e$ T/ ?
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">1 W- r* B* s! i
  2.     <h1>site : {{site}}</h1>
    . w1 v; D, }, ]' |
  3.     <h1>url : {{url}}</h1>
    . r1 b; Q1 f  Z4 }% u6 W
  4.     <h1>Alexa : {{alexa}}</h1>
    5 O( W( d  R' k. N! m
  5. </div>
    # h9 B6 d5 x  B6 j
  6. <script type="text/javascript">! R' l! X5 _5 ^7 v2 ^, s* o
  7. // 我们的数据对象
    $ U8 [' _# [9 n1 v6 R- w
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    " W1 i' t% H- ^
  9. var vm = new Vue({5 h1 A; w, U+ R+ M/ r
  10.     el: '#vue_det',
      Z/ e6 t1 N: S9 ?2 Y; I- S
  11.     data: data* F2 H! u- U! f7 p+ @
  12. })
    ! v$ q/ \. I- s$ ?
  13. ' }/ Y# D) c( }' l3 v9 {+ v
  14. document.write(vm.$data === data) // true) j8 c4 t' C( o6 {
  15. document.write("<br>") // true
    9 Q* b- l/ {9 W
  16. document.write(vm.$el === document.getElementById('vue_det')) // true$ R. r7 G5 M0 l! \2 Z1 y9 t& [( v' C+ y
  17. </script>
复制代码
) |0 A- p3 U# q( O+ l( N! |3 N+ j

' k7 N: m3 n" r1 \9 e) x- Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 11:36 , Processed in 0.052519 second(s), 19 queries .

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