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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    4 }5 v: X% E% v1 f! ~0 G
  2.   // 选项
    % u% a. W0 n6 y0 P: o
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    & ]/ z. h) f5 J; @4 `# G
  2.     <h1>site : {{site}}</h1>
    7 o' S- `' P; B; f& j- D
  3.     <h1>url : {{url}}</h1># K( |# b% z# J$ i0 r7 N1 g
  4.     <h1>{{details()}}</h1>3 X. e  Y1 d& e: M" G5 I5 P
  5. </div>2 S& r6 [1 V' Q4 I% W
  6. <script type="text/javascript">- u/ L7 e! o$ N5 K
  7.     var vm = new Vue({
    # H% I3 W) b! Z$ L/ h
  8.         el: '#vue_det',
    ( ^2 O0 Q! H  n! }- R( ]/ @
  9.         data: {- t* R# l2 y" D; j" e* G. @
  10.             site: "菜鸟教程",; q+ t# ~4 |6 l8 P
  11.             url: "www.runoob.com",
    / D; h+ l" L1 S7 K' }
  12.             alexa: "10000"
    # L8 u; O# m! S
  13.         },
    # |: u5 \7 C5 H% P
  14.         methods: {
    + e, @# Y1 Y1 J; p
  15.             details: function() {
    & D* `  `1 |2 C+ U4 |$ H! K
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";- R$ O  ]- H; a! u: T
  17.             }! L9 ?2 y/ f: F! b( v% k; t
  18.         }8 X$ ^2 U( [' c3 c9 o% }. j
  19.     })! I$ ^* Z. z  D4 j- d! |6 I
  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">5 S; ^  W8 i5 Y: }1 h8 v( V
  2.     <h1>site : {{site}}</h1>
    4 X8 s# o9 r$ M, j' z4 N
  3.     <h1>url : {{url}}</h1>
    9 X5 X$ s- _+ c
  4.     <h1>{{details()}}</h1>8 C( Q8 c7 t* X: [
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    2 L5 t- x- m( @
  2.     <h1>site : {{site}}</h1>2 [2 I6 {0 t8 D) P7 h$ j' I' O
  3.     <h1>url : {{url}}</h1>
    " m7 r8 @, l! s* j
  4.     <h1>Alexa : {{alexa}}</h1>
    & ]$ f/ w2 |6 f
  5. </div>
    5 {1 M* {8 Z$ f1 w( Q
  6. <script type="text/javascript">
    5 ~' c% C6 X$ n  K$ G; W6 {1 n
  7. // 我们的数据对象9 U' ]' T, z, H! h
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    $ M! F* T7 ^+ c& r, M! |3 g
  9. var vm = new Vue({
    ; J5 S" C: p  z" {7 x
  10.     el: '#vue_det',5 K  s# z6 }0 a, T  u& v
  11.     data: data$ @; ]. W" t4 L* {+ b
  12. })
      K( a6 v) S& b- ]' c4 N/ B  y
  13. // 它们引用相同的对象!6 @" J7 k/ G: k
  14. document.write(vm.a === data.a) // true8 n, e8 p: q) t. ~
  15. document.write("<br>"); E0 Q+ ~8 h( J- \" T) q3 Z6 U
  16. // 设置属性也会影响到原始数据) a2 b# O& ?  d# ]; e1 ^
  17. vm.site = "Runoob"
      V8 @  j' s( Q4 U
  18. document.write(data.site + "<br>") // Runoob9 c/ w( H( C  e( Y+ x2 Y
  19. * l0 E' K6 D* h2 i5 j6 N: G
  20. // ……反之亦然
    # a/ P7 t4 O! z3 a" y  R3 q
  21. data.alexa = 1234! W# i) \( S- [. I: G
  22. document.write(vm.alexa) // 1234
    6 T' Q5 [9 y" Y5 r8 a2 n2 N2 t
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">: B( d" ^5 I: @
  2.     <h1>site : {{site}}</h1>
    + I# W& f+ h4 _+ S9 T/ W
  3.     <h1>url : {{url}}</h1>
    % p+ Q  E. H0 d+ o, G
  4.     <h1>Alexa : {{alexa}}</h1>  B! P- g: y6 r' ?) G+ V
  5. </div>6 \+ S9 c: u# V& ]$ b+ {' O
  6. <script type="text/javascript">  W) q. L0 o4 ?" l! {5 e
  7. // 我们的数据对象/ |+ W2 [# }: s0 p( d* E! f
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}7 W8 I) o9 S, o4 m' w/ r4 H( F
  9. var vm = new Vue({% B  K/ Q. {" P5 D
  10.     el: '#vue_det',
    1 A0 I0 c/ p+ Y( B- v: u/ ^
  11.     data: data
    $ Z; r. x1 o: @8 B
  12. })+ a# D' X& [% G( \  \
  13. 4 B  A9 F6 r6 e  I2 `: J1 B' |+ k; a
  14. document.write(vm.$data === data) // true
    6 U2 p# c$ X: g( B5 ^
  15. document.write("<br>") // true
    ; p- a0 g- k) i3 d7 ~( M% x
  16. document.write(vm.$el === document.getElementById('vue_det')) // true7 D) k3 f) I: I1 e; R
  17. </script>
复制代码

) n  _+ j& Y' f" p, ^: z. G" y, g; l( s! X- e6 q, ^* B! v. L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-6-27 00:53 , Processed in 0.110423 second(s), 20 queries .

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