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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({6 C* j0 `$ g7 I( n5 G3 T6 s
  2.   // 选项
    * ~3 [# k! }  f; d. g5 B- w: `
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    " S! m9 C- R! w: B4 N# @
  2.     <h1>site : {{site}}</h1>
    - D; h# X. G% U9 h) T
  3.     <h1>url : {{url}}</h1>
    / T# ?1 K# \1 E( r3 `; U* p
  4.     <h1>{{details()}}</h1>: W* d, @7 Y% N) A
  5. </div>' @0 A: B6 j, p
  6. <script type="text/javascript">
    5 j: M& Y; S! E; o" j
  7.     var vm = new Vue({# q# l1 F. r# {4 p) E
  8.         el: '#vue_det',
    3 y! S4 A1 u, G! }% U) x8 u
  9.         data: {( I1 C5 D! N$ `) ]: i+ z2 r$ A
  10.             site: "菜鸟教程",; z; r2 x+ c" y5 r) l
  11.             url: "www.runoob.com",( i  D7 p1 n0 j* ?% S/ J
  12.             alexa: "10000", e; Y" N- V* k! y- m" v0 N1 N# l. g
  13.         },* W! T1 t' c3 c2 G* d
  14.         methods: {0 o2 i4 Y  R" A
  15.             details: function() {
    . ]- o: }  I& `3 W* S/ l' S) D# A# }
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";6 a! C- V& e3 ~! @% l
  17.             }
    . Q2 O. g7 t" |" Y
  18.         }
    % Q" ]% z$ }/ l/ ?) K1 B
  19.     })
    ! w& y5 x. T4 c- D, Y- Y/ ]
  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">
    & H( ~; [" {7 R* [
  2.     <h1>site : {{site}}</h1>
    % ]  y2 I; S4 y* }! a
  3.     <h1>url : {{url}}</h1>4 A7 t7 Z5 }7 J# B1 C+ Y  \
  4.     <h1>{{details()}}</h1>
    0 Y- O3 O9 k2 {9 P2 l
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    * r$ R" @+ v. K% ~
  2.     <h1>site : {{site}}</h1>8 _5 t0 m0 b) f0 O, H' ?
  3.     <h1>url : {{url}}</h1>
    % `" U0 a" {+ d. g; j8 s
  4.     <h1>Alexa : {{alexa}}</h1>! r, ^- m$ H5 G  i
  5. </div>
    , g9 `8 D* E- E9 Y* k
  6. <script type="text/javascript">. u2 Q4 V- ]/ K
  7. // 我们的数据对象
    - n. s( q; l' G9 p* i
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}  R5 p% |' {( h
  9. var vm = new Vue({) f1 u2 j' i0 c' w4 j$ i5 Y' f
  10.     el: '#vue_det',
    3 s# E" `& e: F
  11.     data: data3 ]' [! B( h% B& p; ]
  12. })* D' ]0 ?% s4 p; B/ T" V
  13. // 它们引用相同的对象!
    $ p2 }8 }# ?9 g: t
  14. document.write(vm.a === data.a) // true9 S7 y7 n6 _1 D$ ?) S
  15. document.write("<br>")
    3 q1 j) W* U& S
  16. // 设置属性也会影响到原始数据
    6 O4 t" f5 v; k& }- w& b
  17. vm.site = "Runoob". b4 L, q; v: Y$ J% m( M  C
  18. document.write(data.site + "<br>") // Runoob
    2 A& j7 X# |# ?% N4 k5 e2 }+ {9 l
  19. 4 M5 o+ u6 ^1 Y4 W. K/ X
  20. // ……反之亦然
    3 q) o4 ]* Y* @/ U3 r& ?
  21. data.alexa = 12340 i/ |& c* M( c% N6 a
  22. document.write(vm.alexa) // 1234
    6 }$ a! x7 q: s8 u4 m- I! I0 n( q
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">, K5 s. F, A+ l) s( ~
  2.     <h1>site : {{site}}</h1>- |9 N5 Q5 C1 n. W; |
  3.     <h1>url : {{url}}</h1>
    - K: D# S: F) @0 O! x; D( j
  4.     <h1>Alexa : {{alexa}}</h1>
    0 f' a) E) F" }3 C
  5. </div>! n4 W$ H. F% B. B
  6. <script type="text/javascript">
    ! o0 j& a! z3 r; r
  7. // 我们的数据对象3 m* H* G' K. \. i; m
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    ) b! R; Y" A( `8 T, \; h% |
  9. var vm = new Vue({
    8 W- [" v4 Z7 k& V
  10.     el: '#vue_det',
    ) m9 ]" e: m" M0 h5 F
  11.     data: data
    1 Y2 p  ^+ h0 d7 `; e& g' Q
  12. })
    5 W" V& u' g& G- t1 F6 E. n, L4 }/ Q
  13. % D" V2 J( M' b- @
  14. document.write(vm.$data === data) // true9 y& ?0 f: T  q/ U' H/ {3 M
  15. document.write("<br>") // true* v  I" c; m, B8 V+ u/ F* K
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    " p, M( O) [. Y0 `0 Z
  17. </script>
复制代码

9 k2 ~& ^. ?2 @' @9 c+ b1 A# o, O2 _' |; Y0 h; D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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