Vue学习笔记1:Hello World小案例

1. Hello World小案例

1.1 采用组件化模式,提高代码复用率、且让代码更好维护。

image

1.2 声明式编码,让编码人员无需直接操作DOM,提高开发效率。

image

1.3 学习Vue之前要掌握的Javascript基础知识

  • ES6语法规范
  • ES6模块化
  • 包管理器
  • 原型、原型链
  • 数组常用方法
  • axios
  • promise

VS Code插件:Live Server

1.4 Hello World小案例

  1. 现有一个容器,即:html代码
  2. 再有一个VUE实例
  3. 当VUE实例工作的时候,它通过el里指定的容器,把指定的容器(即模板)拿过来并解析内部是否有VUE相关的语法(比如下面的{{name}})。然后再结合VUE实例里的data,将模板转换为一个虚拟DOM(VM)
<div id="root">
    <h1>Hello, {{name}}</h1>
</div>
<script type="text/javascript">
    Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

    //创建Vue实例
    new Vue({
        el: '#root', //el用于指定当前Vue实例为哪个容器服务,值通常为css选择器字符串。
        data: { //data中用于存储数据,数据提供el所指定的容器去使用,值,我们暂时先写成一个对象。
            name: 'World'
        }
    })
</script>

容器和Vue实例是一一对应的关系。不可一个容器被多个Vue实例接管,也不可多个容器被一个Vue实例接管。
如下面的代码,两个容器各自对应一个Vue实例。

<!-- 准备好一个容器 -->
<div id="root">
    <h1>Hello, {{name}}, {{address}}</h1>
</div>

<div id="root2">
    <h1>Hello, {{name}}, {{address}}</h1>
</div>

<script type="text/javascript">
    Vue.config.productionTip = false; //阻止 vue 在启动时生成生产提示。

    //创建Vue实例
    new Vue({
        el: '#root', //el用于指定当前Vue实例为哪个容器服务,值通常为css选择器字符串。
        data: { //data中用于存储数据,数据供el所指定的容器去使用,值我们暂时先写成一个对象。
            name: 'World',
            address: '北京'
        }
    })
    new Vue({
        el: '#root2', //el用于指定当前Vue实例为哪个容器服务,值通常为css选择器字符串。
        data: { //data中用于存储数据,数据供el所指定的容器去使用,值我们暂时先写成一个对象。
            name: '世界',
            address: '北京海淀区'
        }
    })
</script>

在Vue容器中的双大括号内的是Js表达式,不是Js语句。
在Vue的Chrome插件里的第一栏,会呈现Vue的组件树,其中根节点()是容器,根节点之下是各个组件。

1.5 总结

  1. 想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象。
  2. root容器里的代码依然符合html规范,只不过混入了一些特殊的Vue语法。
  3. root容器里的代码被称为【Vue模板】
  4. Vue实例和容器是一一对应的
  5. 真实开发中只有一个Vue实例,并且会配合着组件一起使用
  6. {{xxx}}中的xxx要写js表达式,且xxx可以自动读取到data中的所有属性
  7. 一旦data中的数据发生改变,那么页面中用到该数据的地方也会自动更新

注意区分:js表达式 和 js代码(语句)

  1. 表达式: 一个表达式会产生一个值,可以放在任何一个需要值的地方:

    • a
    • a + b
    • demo(1)
    • x === y ? 'a' : 'b'
  2. js代码(语句)

    • if(){}
    • for(){}
posted @ 2023-11-05 17:34  MyMemo  阅读(51)  评论(0编辑  收藏  举报