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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    2 W! a8 Y( j3 c2 t9 E& F( P# f9 X
  2.   // 选项; ^* A4 R& ~8 k8 a1 N# g+ @3 }
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">$ h; T5 b" p% D
  2.     <h1>site : {{site}}</h1>
    7 K- H- F. O7 h( C
  3.     <h1>url : {{url}}</h1>
    0 H. J8 b" {% \
  4.     <h1>{{details()}}</h1>
    & j' x, f4 N( `5 }$ p1 B- t
  5. </div>  o) ^( q: h6 |' Y
  6. <script type="text/javascript">
    1 b# `% T! }- i) d4 S5 `; U& g
  7.     var vm = new Vue({$ |  X/ v+ O/ _0 h" V; a3 J
  8.         el: '#vue_det',
    3 ]# z9 o. u+ R- Q2 O; F; Y5 V# I
  9.         data: {
    . l. g& ?- g3 Y' D) M2 M
  10.             site: "菜鸟教程",
    3 a, @& k) W0 _8 j$ O
  11.             url: "www.runoob.com",
    , H' s  `/ {3 s1 s1 u/ s2 l
  12.             alexa: "10000"
    # x  d6 l* }. m$ {
  13.         },
    6 {3 e: D% u/ L7 I# o) f" D
  14.         methods: {
    " O7 e+ R" n3 r
  15.             details: function() {# @: |4 b% `1 ?5 {) ?
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    + Y) G# t7 g7 A, Z. H# U; S
  17.             }: G5 `+ v6 A% i& N, R
  18.         }. q5 U9 w9 F4 i
  19.     }): U# {" j( \; h1 ?  z9 h/ H; L& v
  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">+ K) {: F/ V7 E& G( e5 T% ~
  2.     <h1>site : {{site}}</h1>
    8 r: Z9 P. A* s
  3.     <h1>url : {{url}}</h1>: A: q5 C$ t+ c4 F) r
  4.     <h1>{{details()}}</h1>3 A+ ~) T! z( E' S$ I/ U" O3 K
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">) N+ S: ~3 U  i4 n; a: h4 O  ?% o
  2.     <h1>site : {{site}}</h1>
    % s2 }6 Y8 C9 a; O1 P0 ?2 ~' r
  3.     <h1>url : {{url}}</h1>
    ( ~+ }* F; S, @/ A8 u
  4.     <h1>Alexa : {{alexa}}</h1>8 u7 k9 W7 H. y  ?  [
  5. </div>2 n  `% X# z) |- p* E# n
  6. <script type="text/javascript">) p+ L, V8 h# q1 y8 g$ U
  7. // 我们的数据对象
    9 t5 O3 a" D5 V# M/ ?# f
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    , k0 ]0 n/ p! V; [2 w, y" g
  9. var vm = new Vue({. B, I" A; i- _/ S! B( f
  10.     el: '#vue_det',! Z4 `- p& e- J. j1 r* Q
  11.     data: data
    7 b! [2 _$ I6 t/ c6 e; ?; l
  12. })& t6 O+ K$ U! x: N& O  b0 o9 W
  13. // 它们引用相同的对象!
    ' A) h: l. y! b! R1 w
  14. document.write(vm.a === data.a) // true7 K% H8 T0 M# w6 \" U
  15. document.write("<br>")
    ! e! U# I  \( x2 Y* O
  16. // 设置属性也会影响到原始数据
    , {+ A- G8 N! o( G$ c; `( Y# x5 z
  17. vm.site = "Runoob") m* Z1 A% p+ _. }
  18. document.write(data.site + "<br>") // Runoob
    ' k' t1 `3 z* i, {
  19. ) A; R8 Z% p" p) w- v2 X
  20. // ……反之亦然1 l" l" }& i/ _# a
  21. data.alexa = 1234  q& I% u, j% ^
  22. document.write(vm.alexa) // 1234
    & q" E1 t/ L5 l
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    - _, n* c4 \# h, D
  2.     <h1>site : {{site}}</h1>, P6 b; o' h) `0 Q% ~$ l
  3.     <h1>url : {{url}}</h1>+ |8 K( L* Y5 v' C0 s9 c
  4.     <h1>Alexa : {{alexa}}</h1>6 {, m$ d3 D/ @/ x9 M; _
  5. </div>9 ^: r4 v( p, I; D
  6. <script type="text/javascript">. ^* [, B$ [0 O: M+ e
  7. // 我们的数据对象% B+ d! _' C1 q. @( _+ A1 ]
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}3 T; {8 [  u# _) U3 v" w
  9. var vm = new Vue({9 z% H( R9 i3 j6 s; `
  10.     el: '#vue_det',% e$ W6 A% Q! u
  11.     data: data+ X# u* h- C* P- `$ o
  12. })4 S) O3 m: N; u( Z
  13. & {/ q* ]- s4 I" w# j4 J" w6 f
  14. document.write(vm.$data === data) // true0 S2 V1 {4 r3 E/ x
  15. document.write("<br>") // true/ ^# O/ j7 m* C6 v, a
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    ) Y3 R. E& `- r5 c2 X5 q' X
  17. </script>
复制代码
( p' x1 F8 d8 w2 Y$ @4 ?' `% G* |
" R, [+ U* u$ |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 11:04 , Processed in 0.106598 second(s), 19 queries .

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