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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    & G% }9 A! p$ {2 m3 _
  2.   // 选项
    9 F& h3 {7 f" i. |3 W) ^/ _+ A
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">. Z2 T+ C# v7 S' P5 [
  2.     <h1>site : {{site}}</h1>
    + F& s& J1 w% J- X
  3.     <h1>url : {{url}}</h1>
    9 {* v* l$ G5 Q" d
  4.     <h1>{{details()}}</h1>* @5 o  N! X& |' L% `
  5. </div>0 N3 _9 x# p. j6 \' ]# Z" G% o
  6. <script type="text/javascript">* v9 a: }4 u% w
  7.     var vm = new Vue({7 c, \* X+ V( Z0 {$ V
  8.         el: '#vue_det',, r1 v9 |# h# Q1 g
  9.         data: {
    + r; [: h5 b4 _4 A* o
  10.             site: "菜鸟教程",
    7 M! v) e6 A4 R" C5 \
  11.             url: "www.runoob.com",8 m0 D/ D+ n! m0 o$ Y' b
  12.             alexa: "10000"
    ) K0 |; F- i( e. A* a
  13.         },
    , @6 R. {6 D! z7 d/ E- K
  14.         methods: {" y% [/ k$ q7 S* b3 {  w* O, l
  15.             details: function() {
    1 T4 T' C: m8 s  _; B& k% i
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    3 Q1 t# v, P6 ]$ o/ q% `) S
  17.             }4 T2 E% k9 a6 c+ D
  18.         }
    , E- I8 U! A( f* ^7 C+ d) o* w
  19.     })5 D% w9 t6 K( G) H4 m' B& C" ]4 ?
  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">- i- B- @% `% i/ U
  2.     <h1>site : {{site}}</h1>2 Y4 O( s6 _- y
  3.     <h1>url : {{url}}</h1>
    * s1 d* T1 U) b* o2 I
  4.     <h1>{{details()}}</h1>
    : |) b1 }+ N: h8 ]" |3 r% e1 O
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">( K* Y# {* r. B8 m2 w, T
  2.     <h1>site : {{site}}</h1>/ [/ s: _8 n, t8 _2 C
  3.     <h1>url : {{url}}</h1>
    6 ^2 P. p6 J+ L! ?) o1 r
  4.     <h1>Alexa : {{alexa}}</h1>
    7 Y, l' i9 O" B+ ?7 q( b" m
  5. </div>
    3 v; ~; m) o: k4 u; E" h3 a
  6. <script type="text/javascript">5 M: _4 s& d% Q- I
  7. // 我们的数据对象7 r. |0 w* _1 q4 A5 v4 e
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    7 H* z& w4 W6 I( j. g$ v8 h
  9. var vm = new Vue({3 U* K9 `2 h$ N6 T7 p6 u8 g
  10.     el: '#vue_det',
    ; ~* C) H, s9 B; M$ u: G3 u+ x: I
  11.     data: data$ H, [8 l5 `0 w. E7 o& q6 R
  12. })
    " U/ q( n# \: Z/ q( e- r1 c
  13. // 它们引用相同的对象!! u! N/ W3 Q* E  R1 m
  14. document.write(vm.a === data.a) // true% {4 ~$ v* e$ e+ |" l
  15. document.write("<br>")
    ( I3 b2 s7 ^: E( R  E
  16. // 设置属性也会影响到原始数据' K7 X8 t" i, R4 g
  17. vm.site = "Runoob"
    6 i* t& i# P3 f
  18. document.write(data.site + "<br>") // Runoob
    - p7 L; p! E+ v: x
  19. ( L, _3 p5 R' D/ }
  20. // ……反之亦然
    $ b  P* N$ ~" t) j# D0 W1 b
  21. data.alexa = 1234
    2 W1 ~" }1 w. k3 D0 |  q2 r. z
  22. document.write(vm.alexa) // 1234
    / n1 w4 ^) T% [5 K
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">/ k% a: P) |( c! Q# l# v8 A+ K. s& p
  2.     <h1>site : {{site}}</h1>  _8 J5 E  x) ~7 H1 {
  3.     <h1>url : {{url}}</h1>* V/ F. o7 O1 S1 A: n  Y6 V1 a) P* r1 }4 _
  4.     <h1>Alexa : {{alexa}}</h1>
    & h) q9 a- T! v% X
  5. </div>
    9 W, V, q; X: X" a$ A8 a
  6. <script type="text/javascript">
    ; }$ D9 u: [: F) b! j% N7 ~* K
  7. // 我们的数据对象
    7 O% G$ l1 G( b/ ^  ?  f
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    # y" x5 X. Q, W) u
  9. var vm = new Vue({
    / \% v; n% f- ]& \4 O2 q+ f8 R9 A3 e
  10.     el: '#vue_det',
    7 P9 d% B( F5 k& @/ ]
  11.     data: data
    - r( M  J% V# r% e5 w# v
  12. })
    + t" _* [+ s/ S

  13. ' Z  m9 G/ V1 ]
  14. document.write(vm.$data === data) // true9 O+ j9 k" m; a
  15. document.write("<br>") // true
    , a$ E" s. {: c9 n* J' |
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    8 y5 B6 x; A% R- P2 u
  17. </script>
复制代码
0 u5 j0 N; ^! @9 @$ t
1 T# n6 r0 H4 l/ Q# o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-14 07:43 , Processed in 0.119538 second(s), 21 queries .

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