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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    0 X2 t& q+ S' N: Z2 v: b( Q
  2.   // 选项6 R0 {/ f" Z7 i  }
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">* G4 K4 s2 \& c+ q
  2.     <h1>site : {{site}}</h1>
    7 K7 [9 s9 N# G2 U
  3.     <h1>url : {{url}}</h1>, T! a- d# D$ Y; q5 V: }
  4.     <h1>{{details()}}</h1>
    8 s/ E+ U  D3 {) Q1 }
  5. </div>) q5 @( V5 H2 y+ z% ~3 c
  6. <script type="text/javascript">
    - G5 e. G: t& k( W& O4 r
  7.     var vm = new Vue({" s0 U- i) h8 l- |
  8.         el: '#vue_det',* M9 w5 w7 x; d4 T* C
  9.         data: {' a, v1 |# @- \5 {. J$ ?: I- N
  10.             site: "菜鸟教程",
    ' ?4 k4 D- Y' I2 x6 p
  11.             url: "www.runoob.com",9 I4 A( n$ ^" ~3 W
  12.             alexa: "10000"8 X* e8 U8 t' m$ h+ j
  13.         },
    8 r& g/ x1 O; X2 A8 j: ~
  14.         methods: {
    2 y, ?) @$ J* `, Q: a0 N9 D
  15.             details: function() {- X- l( t* C' m* F, l, A
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";3 w; z# l& C+ a; B& F
  17.             }
    # n+ p1 R7 r" v8 E6 Q' Z
  18.         }
    : u) Y. R8 `' j# Y' @4 Z% h8 O
  19.     })* T/ t+ @6 Y( E4 x1 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">
    % I  J) @$ ~; Z6 P
  2.     <h1>site : {{site}}</h1>
    ) l! ~8 o/ X6 L! L
  3.     <h1>url : {{url}}</h1>
    - ?, c2 S+ t1 j# \4 k6 y: _9 E" C
  4.     <h1>{{details()}}</h1>- T- i7 e! M  e2 A8 {7 W5 Z7 \
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det"># T% T# ^' Z  k4 K: P, u. ^
  2.     <h1>site : {{site}}</h1>0 Z7 E( [( x  Q  W/ D& v* l
  3.     <h1>url : {{url}}</h1>* V+ b8 Z. }& x6 {
  4.     <h1>Alexa : {{alexa}}</h1>. P; k0 V9 W7 ~
  5. </div>9 h# D6 e& ?- N7 i; g) G
  6. <script type="text/javascript">
    0 E4 D. b: h$ k% z9 [( P2 R
  7. // 我们的数据对象
    3 @& U2 a( b9 [( X. S# X4 m( ?
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}: W4 `2 R7 L+ i- r
  9. var vm = new Vue({
    5 ~  S+ z$ i6 T, O2 G0 h
  10.     el: '#vue_det',
    1 d! b/ ]8 ?9 i. h4 ~) u& x( T/ x0 M
  11.     data: data
      G# s) g. I: W* Q$ }
  12. })! F; I+ {# r0 g: \9 }
  13. // 它们引用相同的对象!9 k/ M, V6 ~8 C4 w) G
  14. document.write(vm.a === data.a) // true
    8 o/ T1 a8 z+ G4 N: b5 p: J
  15. document.write("<br>")7 P1 q) c" D# B2 ]4 w
  16. // 设置属性也会影响到原始数据
      f& v) f2 M$ d8 h  ], h4 _9 _- V
  17. vm.site = "Runoob"6 p2 P: N2 }; L. X8 t( T3 A
  18. document.write(data.site + "<br>") // Runoob: @& w* {' Y' X$ G1 F* U

  19. 3 z0 S% c/ F) i
  20. // ……反之亦然
    4 d- o1 x6 z" {( {: s: C: `2 {
  21. data.alexa = 1234
    & W, ]( @  A" ^$ _1 H' L
  22. document.write(vm.alexa) // 1234
    + b' S2 v5 _4 v
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">4 |8 h' Y% w4 A( A7 B( T' L0 O6 H
  2.     <h1>site : {{site}}</h1>3 ?' w4 z! M' Q! d" b* K9 |# d# R
  3.     <h1>url : {{url}}</h1>
    0 V% p; D0 V% K! `- s4 a3 C
  4.     <h1>Alexa : {{alexa}}</h1>
      H/ G% M' q$ \0 d. J! b
  5. </div>4 z, f; A4 ~4 H6 `! a6 s" A' }
  6. <script type="text/javascript">
    / O" ^' n# U6 B$ z9 m+ @  W4 h. a
  7. // 我们的数据对象
    - u! X1 Y0 g3 T" V" U
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}! F9 \8 c3 ~! e8 }! T2 E6 f
  9. var vm = new Vue({
    . F( B; t) y' D7 e* I. W1 x- ^
  10.     el: '#vue_det',' ?6 k  \2 A6 w. ^5 o
  11.     data: data
    $ k7 y" K- J9 g" v# v( r& a5 v
  12. })
      Y& Y  u. l' f3 ]" P

  13. 3 M, l& A0 c6 ?# C8 ?
  14. document.write(vm.$data === data) // true
      t0 N8 f1 C; F" s$ a
  15. document.write("<br>") // true- I4 N- L& d4 p2 F
  16. document.write(vm.$el === document.getElementById('vue_det')) // true5 U$ [5 Z6 I5 j+ ]6 m9 \
  17. </script>
复制代码
- ^* U' h: j# H3 B5 S  \5 x

2 L8 G! @3 N1 _. R/ Y/ K& F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 11:46 , Processed in 0.080927 second(s), 19 queries .

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