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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    # A% _, S; e0 O) Y1 x( E
  2.   // 选项2 ^2 y0 v" i! [
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">$ i0 s0 y. v, E9 e6 e
  2.     <h1>site : {{site}}</h1>
    8 D) a! O! h: ~/ D
  3.     <h1>url : {{url}}</h1>
    $ y, ^5 i0 s3 K5 L$ o
  4.     <h1>{{details()}}</h1>
    * ]+ d7 h6 M9 n& x
  5. </div>
    ( c! i- K6 u3 w
  6. <script type="text/javascript">9 P7 m/ q  o' @2 E
  7.     var vm = new Vue({) P' m7 M4 m. e% \
  8.         el: '#vue_det',- I/ V, \+ o$ d0 D: ?* {- i% a
  9.         data: {8 S* |" n/ |5 c7 p5 T* l" t, O
  10.             site: "菜鸟教程",, G$ U& B0 `8 x
  11.             url: "www.runoob.com",
    * x4 F& }6 I7 D
  12.             alexa: "10000": H% C4 G. X6 [
  13.         },% q4 s: ^2 j( s( `9 s
  14.         methods: {0 }  u( W2 y7 y. M" V8 t5 R
  15.             details: function() {: G" k% h1 l6 A0 h, `
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";7 \7 b7 D& u2 S9 A' P
  17.             }
    0 X: N5 h5 l; M. x  S4 F
  18.         }
    4 I2 s- G) B( C' H5 n# x' Y1 n
  19.     })' j/ O% w+ A0 O/ a6 _/ f
  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">; p, ]% o* @& r, D4 b
  2.     <h1>site : {{site}}</h1>! j- |  R7 n' a2 J( z3 r( l8 g% A8 ]
  3.     <h1>url : {{url}}</h1>3 _2 p6 x( f5 }; S4 ]# g$ {
  4.     <h1>{{details()}}</h1>
    " T  y, ]* K4 t! |3 j) d
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">! C5 c* G9 F3 k
  2.     <h1>site : {{site}}</h1>4 O1 ?% D' ?) H" ]
  3.     <h1>url : {{url}}</h1>- {" V" E. H: c6 ?3 L
  4.     <h1>Alexa : {{alexa}}</h1>
    - l6 g  ]+ w( Q" P2 j- G( N: q% A$ u' l
  5. </div>7 `( w9 q  d0 x( C5 a
  6. <script type="text/javascript">% U# W+ G$ W/ f: [* p0 U4 X4 i6 p
  7. // 我们的数据对象- v8 o7 W- M1 z# U2 `$ R
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}' _( \3 H' z( v  T. {) L- Y: j3 I
  9. var vm = new Vue({
    3 Z" E: {) ~5 |1 e# H. F' w: S: b8 F
  10.     el: '#vue_det',1 D- x2 N" n; }" ^9 Z7 T3 ^3 f* J
  11.     data: data
    - g1 B; S$ p6 l! D2 u) Z  b
  12. }): b/ |. D" v3 a. N+ v" a
  13. // 它们引用相同的对象!
    6 j$ j5 M# J' c+ O! Y7 r& U7 u
  14. document.write(vm.a === data.a) // true: _# i, h6 u( q# k; J
  15. document.write("<br>")9 l* g* a* c& ~; m: ]% F& U9 _" j9 }
  16. // 设置属性也会影响到原始数据
    : e! {# \, H( t- @2 ?0 c5 `
  17. vm.site = "Runoob"% M( {6 h) ]0 p7 O
  18. document.write(data.site + "<br>") // Runoob3 [* Z6 w5 N' j1 m& _9 E8 H3 A

  19. ! y3 o4 Q# M+ d' E: H# g' H6 W% ?
  20. // ……反之亦然/ k* @- \9 G# d
  21. data.alexa = 1234: w; ~- ?' w  q$ \8 R2 e
  22. document.write(vm.alexa) // 1234
    # q4 R. c8 j- k2 a
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    * s, h/ R  v; n+ h
  2.     <h1>site : {{site}}</h1>
    % E6 J$ N7 F, c8 \+ i9 o/ @& ^
  3.     <h1>url : {{url}}</h1>
      C0 o  |* P+ W( l. J& B
  4.     <h1>Alexa : {{alexa}}</h1>
    ) S/ z5 G; u8 H8 g% [
  5. </div>
    ) r% O! K( Q* O$ l
  6. <script type="text/javascript">8 S' @3 v, n+ |4 x3 \
  7. // 我们的数据对象
    , W: N, E- h1 P3 O
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    : M* z1 {+ \  ?1 R* }( G, ~0 V; G
  9. var vm = new Vue({
    3 }/ W1 ~3 z+ Q1 m7 t' @
  10.     el: '#vue_det',  g9 j, V0 A4 v; Z. W0 r2 \3 b' U
  11.     data: data$ z3 h+ @$ i4 z
  12. })( U- N, Y& L- U4 `

  13. 3 H- d; W+ c! L* q% e) j9 f/ \
  14. document.write(vm.$data === data) // true& f% Y% N! K: @5 |3 P& n2 N  E
  15. document.write("<br>") // true- n' r3 {6 Y& `9 K1 W
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    ! B9 m; V( `6 |
  17. </script>
复制代码
* |2 a, j2 J, Q$ s
' |! M; m9 k0 _- D. u, h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 20:18 , Processed in 0.055050 second(s), 19 queries .

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