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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({0 Q2 \( m* b6 E9 ~$ U% k8 G
  2.   // 选项
    1 l5 {+ e. p9 q1 R/ y' V- m
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">, C' O: E8 w% q, g  _9 Q1 t% {
  2.     <h1>site : {{site}}</h1>
    % `  U# w& n5 C1 O
  3.     <h1>url : {{url}}</h1>6 i0 _1 ^. O* Z1 H0 K1 Q
  4.     <h1>{{details()}}</h1>/ I- o& J* ?6 x( j# _2 S
  5. </div>
    / n* l! e- \) d( i' B' I
  6. <script type="text/javascript">
    4 b: ~8 F' E# m
  7.     var vm = new Vue({8 C4 ]  z6 r3 D" z" \  R1 c8 |5 t
  8.         el: '#vue_det',4 t; B+ o. T4 ?, j0 a$ ]
  9.         data: {
    : Y5 Z* I9 U* S7 Q, |9 G2 n' L
  10.             site: "菜鸟教程",
    8 R: X+ N, ~9 o4 D
  11.             url: "www.runoob.com",
    2 p" ^8 e8 e3 D+ |2 X1 K
  12.             alexa: "10000"
    & @0 a( C! S7 d
  13.         },
    , T' Z9 B, c# v* \) f: I7 |
  14.         methods: {
    " {$ h2 h4 V9 ?' E- b$ t: v. s$ ?
  15.             details: function() {1 a; |, A7 s) W
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";: `' q) ]  v$ z2 m
  17.             }) ]( x1 ^3 m2 y0 k
  18.         }
    4 D; s6 z- C: a. S0 ~
  19.     })
    9 a7 r) V- {* I2 \! J0 w
  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">
    $ {  \$ s$ |7 ]+ X+ X" x5 C- g
  2.     <h1>site : {{site}}</h1>7 ~6 g6 c8 x' Q) O6 P
  3.     <h1>url : {{url}}</h1>
    8 m$ j, r4 [# |7 b( K1 s
  4.     <h1>{{details()}}</h1>
    ) _7 z; N* W6 V- a1 b: @
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">: \: N/ a3 d6 l$ Q/ S. H( M# Q
  2.     <h1>site : {{site}}</h1>
    # d3 W5 e- D+ ~
  3.     <h1>url : {{url}}</h1>
    * Y# ~6 Q- I! \% Y. Z
  4.     <h1>Alexa : {{alexa}}</h1>) ~2 o0 G1 |/ R8 G5 F
  5. </div>& {& ~4 w2 A" a5 U; T7 J* H! h' d
  6. <script type="text/javascript">0 u8 K3 d2 {3 m; n
  7. // 我们的数据对象
    4 j+ z& C# f+ \. r5 K0 _) d0 ]7 l
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    ( e" _) B% m; R0 g6 ]0 J3 N' l
  9. var vm = new Vue({
    7 B/ x' x* ]- Z! P5 w7 u
  10.     el: '#vue_det',+ I, b9 P+ n' t5 C/ r# C1 O
  11.     data: data
    . u+ t2 m" q4 q3 U: ?2 p
  12. })8 U( }' k5 ]  {
  13. // 它们引用相同的对象!
    : a+ w; {# W4 s2 m
  14. document.write(vm.a === data.a) // true; G3 x  ?9 ^2 i0 r& f
  15. document.write("<br>")% e& L1 L) ]1 R4 b% @' H& W  W
  16. // 设置属性也会影响到原始数据
    8 L4 `/ M3 X) ?
  17. vm.site = "Runoob"
    4 e* h$ B  _5 R! z! i, n
  18. document.write(data.site + "<br>") // Runoob
    ( o  n8 F$ K9 G! z0 J: W: ^

  19. $ C+ n  W9 F; ~' }# A  e6 S
  20. // ……反之亦然
    6 V2 f1 p7 _2 [1 K9 ?, Y
  21. data.alexa = 1234+ p! i, a2 @3 X
  22. document.write(vm.alexa) // 1234
    ; ?, D7 v1 g& ]
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    . r) g# \* d! ^* r
  2.     <h1>site : {{site}}</h1>
    % d( [$ @1 ~8 Q# G; q
  3.     <h1>url : {{url}}</h1>
    / _; O$ g  a2 [/ e8 v1 d/ Y* B
  4.     <h1>Alexa : {{alexa}}</h1>) m, U" P  E4 O0 X
  5. </div>
    ! L. H( u" w2 j$ J0 v+ I
  6. <script type="text/javascript">
    + t: M2 z1 R: E) R3 {' K6 y% j
  7. // 我们的数据对象
    6 p/ q$ v2 u8 S7 Z3 M5 W' c
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}4 c" B& m! ]' G( `
  9. var vm = new Vue({" m- l# q, |5 z( J4 L' d( i9 _+ [- e
  10.     el: '#vue_det',
    5 e' B, q9 h' x) @7 T. [  S
  11.     data: data
    % l) U6 X- F/ s4 r; y& S7 b/ `. {
  12. })
    9 f/ J& `9 t& G) B! @# [4 U* d

  13. + n# }4 ?  q$ Q1 Z  ^8 I
  14. document.write(vm.$data === data) // true
    8 Y: T+ l# m$ n: ~% z
  15. document.write("<br>") // true
    0 _3 w& I6 ~) S! R2 |) @
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    4 k+ L' O1 T! B+ I' X
  17. </script>
复制代码

' D+ Z" ?! l# A  _9 b2 \3 P$ D3 |$ _. y9 A. z) i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-9-21 02:03 , Processed in 0.061468 second(s), 19 queries .

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