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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({) B. I/ x! |% X) l
  2.   // 选项
    $ x/ t# y1 ]( s
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    & p0 r, l  c8 o5 F0 x$ H' H6 \
  2.     <h1>site : {{site}}</h1>
    0 K, X/ D: ?% W6 }) ]
  3.     <h1>url : {{url}}</h1>
    6 L6 j- Z1 i* F6 Y
  4.     <h1>{{details()}}</h1>( I8 ?0 @7 _# \3 q
  5. </div>( Q7 D4 N% x# h/ u4 l
  6. <script type="text/javascript">9 H+ u/ @  v+ M6 G% H* m4 ]9 y
  7.     var vm = new Vue({
    & w% p* N( I+ K6 }) P: N* G+ p! {
  8.         el: '#vue_det',
    8 E/ y% A/ w6 |% E5 z  @
  9.         data: {
    ; B2 a6 @2 M' P$ f
  10.             site: "菜鸟教程",
      B' y2 L% `  @2 l5 g4 A4 W4 ^
  11.             url: "www.runoob.com",2 w1 K' {- }8 }$ j
  12.             alexa: "10000"
    " T0 L& J% z8 q" c' E
  13.         },
    ! n$ d3 s: G. {: u# _$ K+ R
  14.         methods: {5 E# ?" c. j5 [1 o: O
  15.             details: function() {' k( X; y6 Z0 t; K' }3 _  u9 F% s# i
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";/ z" C- r( K6 v( T7 \
  17.             }
    : \. P7 Q! k5 L8 |
  18.         }
    - h/ m7 ]) U! ?0 _0 P: ?) e) L
  19.     })
    ( i- O3 P( Z1 O1 n
  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">
    3 M7 d% Q( r. A0 m* C
  2.     <h1>site : {{site}}</h1>. A- n5 t2 x; l: ?1 ?- q
  3.     <h1>url : {{url}}</h1>
    ; k) }  v7 E9 e3 p) ^8 m
  4.     <h1>{{details()}}</h1>+ ?+ G( ?& G) y5 m9 U* {
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    3 ?4 T* S- Y1 N; @9 d' L8 ^. J
  2.     <h1>site : {{site}}</h1>3 C' |* _5 K4 x/ x- I, z6 E3 Z
  3.     <h1>url : {{url}}</h1>. N5 o9 c4 O1 |" X8 E% d  @
  4.     <h1>Alexa : {{alexa}}</h1>0 ?) k6 W* _+ U% l; s: {& @5 t$ I
  5. </div>) [6 A( z. r* L) ^% e
  6. <script type="text/javascript">1 ^8 S5 e( |& a/ b# i( o1 t8 ]
  7. // 我们的数据对象3 j( N" l' ^7 |2 q: j' q' D+ `* V! M
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    " {* \+ ~3 M" o+ o4 i& ?) e, V
  9. var vm = new Vue({
    : l: Q# R$ _' a  n
  10.     el: '#vue_det',5 R4 K1 T- y0 k' e
  11.     data: data
    8 \8 u2 Y) ~' J7 `, ~
  12. })$ ?8 V1 l+ A* g8 j  O
  13. // 它们引用相同的对象!5 [4 K# M' I! P6 m
  14. document.write(vm.a === data.a) // true+ X4 v" `( u8 Y, K3 l  |
  15. document.write("<br>")4 W3 K& x; C9 g5 g
  16. // 设置属性也会影响到原始数据
    4 V8 c6 `& h6 Z4 n1 N6 w
  17. vm.site = "Runoob"
    1 e' N3 K* y9 Q: `1 r
  18. document.write(data.site + "<br>") // Runoob4 m$ n# v* W) j; Q8 j' E
  19. % p+ ~: h) V5 |* L% }1 `
  20. // ……反之亦然1 y! E) y; v; z, [" i
  21. data.alexa = 1234& A% T. _3 T9 B2 J4 Z) ^
  22. document.write(vm.alexa) // 1234% V+ d  F. P6 k) @6 G' Z$ ~
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    6 A$ X. T* V6 @# G
  2.     <h1>site : {{site}}</h1>* o9 `% \" j7 J% `! e' f. S+ k
  3.     <h1>url : {{url}}</h1>
    ! r8 @, C2 Q8 v# n
  4.     <h1>Alexa : {{alexa}}</h1>
    4 x) I$ R- p; q4 R, }1 @
  5. </div>. ?! O) ^1 L- C' Y8 Y8 ~
  6. <script type="text/javascript">% P) P5 K+ y* o& Z  O/ Y* P1 ^
  7. // 我们的数据对象
    # I4 ^  a, E. l; T+ ^1 A! e
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}, z7 s% A. y7 r+ O3 S) o
  9. var vm = new Vue({
    # u: N: h* r! Z* J
  10.     el: '#vue_det',( n( `% f+ a- J* l  Z
  11.     data: data+ I& Q" g1 O* h! O9 b
  12. })2 |1 N; `# k3 Q5 _

  13. # B4 ]* x: w4 H
  14. document.write(vm.$data === data) // true
      `, }5 e; a* I* s& ^& u
  15. document.write("<br>") // true' N+ @: X8 v, Q! h7 E5 @0 G
  16. document.write(vm.$el === document.getElementById('vue_det')) // true) K! X" S* X6 v- T4 V
  17. </script>
复制代码

  n$ j  Z$ |2 y
# J" Y$ ^; a& D1 N8 d6 a5 W8 J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 16:54 , Processed in 0.125070 second(s), 21 queries .

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