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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    ( G& l) F  F: b" I+ ^# b
  2.   // 选项% Q% V+ @5 w0 x% j* s, S6 S
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
      a& R" ?- Y7 M/ B( f0 {% t- w
  2.     <h1>site : {{site}}</h1>; ]3 t& N9 j* ]1 j4 d" e% L
  3.     <h1>url : {{url}}</h1>3 t* c1 u& t2 D! e0 k3 ?2 _
  4.     <h1>{{details()}}</h1>, K0 o) x5 ?3 |
  5. </div>+ n" K; I' f* i- F& j* I5 f
  6. <script type="text/javascript">( d% G' w7 ?( Y6 e
  7.     var vm = new Vue({8 d/ r+ ~+ b: B' B) \0 Y* g) L
  8.         el: '#vue_det',
    $ s! C; r% o( a7 K( D  u7 Y1 H+ a
  9.         data: {5 P4 \# b$ |/ Q( P# X
  10.             site: "菜鸟教程",
    ; Y" f# R! x% p6 R) t& k2 ]
  11.             url: "www.runoob.com",
      p! t/ G5 c+ R6 J9 M
  12.             alexa: "10000"
    5 K4 x- o0 d& ]. T' f( i- Q
  13.         },
    4 X. Y3 k4 N- n9 h+ m
  14.         methods: {9 \$ p, H1 L: ?$ e  _  d
  15.             details: function() {
    ; b0 q7 o' t8 n. ?. d; ~, Q
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    . ^6 f8 X" a+ \
  17.             }) v* j4 ?/ I# r
  18.         }( |# p; g" r" L" H2 Y
  19.     }): ?, P  h" ?3 ]1 C. V$ t0 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">9 ?; X. Z1 J; n. v
  2.     <h1>site : {{site}}</h1>
    7 @' q3 M% B! l5 D+ ?1 r$ ~
  3.     <h1>url : {{url}}</h1>8 f( I! h& r$ x& K* {
  4.     <h1>{{details()}}</h1>
    ' _1 Z0 F9 `* d' x4 P
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    + m+ b: S! a5 v7 _0 R
  2.     <h1>site : {{site}}</h1>
    7 R4 u* n7 c. S
  3.     <h1>url : {{url}}</h1>
    0 J+ O% [" U- R4 z1 G/ e
  4.     <h1>Alexa : {{alexa}}</h1>$ [. [3 @  M- j; X) D
  5. </div>
    ! H0 [7 D; g/ r. G
  6. <script type="text/javascript">
    $ h# c7 J$ }" A! }1 {) c
  7. // 我们的数据对象, O& r& R! v$ [2 O6 n# N
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}; S! p6 U. j% d: }- q8 d. O
  9. var vm = new Vue({
    / k( H) L( u  Y1 ]' d8 G
  10.     el: '#vue_det',9 L* W% G; o$ C- {9 {# A8 x  V
  11.     data: data8 b# |$ T& i, z0 R( E2 X0 V
  12. })0 ^) u2 P/ ^. ?# {6 _& Q2 J
  13. // 它们引用相同的对象!
    + u; w8 a9 ~8 E% ?: L; z
  14. document.write(vm.a === data.a) // true
    9 @6 h- y6 S, z  X# X" @0 Q' M
  15. document.write("<br>")
    / m! P# _. z( ?
  16. // 设置属性也会影响到原始数据
    . Q" T9 ?8 t/ a) W/ V
  17. vm.site = "Runoob"9 R! |# W/ y5 [! e' V8 \$ x
  18. document.write(data.site + "<br>") // Runoob# h* m; \& z- C% I) m) [( H
  19. / N% c/ C% E; f
  20. // ……反之亦然& U0 C* _" x# \3 w: J$ [
  21. data.alexa = 12345 A2 `; `. c1 J$ a2 G' }
  22. document.write(vm.alexa) // 1234
    ! z, [5 }  g1 R/ B
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">5 `/ d/ n" e: _/ w
  2.     <h1>site : {{site}}</h1>; a" f: B; B' E
  3.     <h1>url : {{url}}</h1>0 n) ?- Z: M$ m! n
  4.     <h1>Alexa : {{alexa}}</h1>5 T4 i6 J7 q* g! W9 D4 p( n
  5. </div>0 G7 X0 X8 d5 e  S$ ^1 L  I3 H- ?6 X
  6. <script type="text/javascript">
    3 ~9 I. L: J- \  [* P
  7. // 我们的数据对象
    . X7 B; n# U# x" K+ j. t  |( ?
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}" Y; d! z9 X- E! Q
  9. var vm = new Vue({+ Q5 U/ N: e  [; s- F" e8 \* F6 V- ^
  10.     el: '#vue_det',* {: ^: F+ _5 o0 n2 }
  11.     data: data1 e3 c. V: g7 N; }% w. y
  12. })
    $ |3 H: |9 |- T  \( N
  13. , q7 `. w6 O4 {  H/ F- A; v) p
  14. document.write(vm.$data === data) // true7 L0 R- V: N4 t! w9 l
  15. document.write("<br>") // true
    1 M/ ~' ]7 |6 V7 b0 |
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    ' |/ e+ O" C$ L1 b! P' X
  17. </script>
复制代码
3 z% i& H+ I2 x3 t
% i& L4 h$ V' ?% @7 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 21:45 , Processed in 0.057233 second(s), 19 queries .

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