首页 > 编程语言 >1. Vue程序初体验

1. Vue程序初体验

时间:2023-07-08 16:33:50浏览次数:46  
标签:语句 初体验 实例 程序 Vue template data 模板

Vue 是一个基于 JavaScrip(t JS) 实现的框架。要使用它就需要先拿到 Vue 的 js 文件。从 Vue 官网(https://v2.cn.vuejs.org/)下载 vue.js 文件

1. 下载并安装 vue.js

  1. 第一步:打开 Vue2 官网,点击下图所示的“起步”:
  2. 第二步:继续点击下图所示的“安装”
  3. 第三步:在“安装”页面向下滚动,直到看到下图所示位置
  4. 第四步:点击开发版本,并下载,如下图所示
  5. 第五步:安装 Vue , 使用 script 标签引入 vue.js 文件。

​​image​​

2. 第一个 Vue 程序

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <!-- 安装vue.js -->
    <script src="js/vue.js"></script>
  </head>
  <body>
    <!-- 指定挂在位置 -->
    <div id="app"></div>
    <script>
      // 第一步 : 创建Vue实例
      const vm = new Vue({
        template: "<h1>Hello Vue</h1>",
      });
      // 第二步 : 将Vue实例挂在到指定位置
      vm.$mount("#app");
    </script>
  </body>
</html>

第一步: 创建 Vue 实例

  1. 为什么要 new Vue(),直接调用 Vue()函数不行吗?

    不行,因为直接调用 Vue()函数,不创建实例的话,会出现以下错误: Vue is a constructor and should be called with the <span data-type="code">new</span> keyword

  2. 关于 Vue 构造函数的参数:options?

    option 翻译为选项:
    options 翻译为多个选项
    Vue 框架要求这个 options 参数必须是一个纯粹的 JS 对象:{}
    在{}对象中可以编写大量的 key:value 对。
    一个 key:value 对就是一个配置项。
    主要是通过 options 这个参数来给 Vue 实例指定多个配置项。

    new Vue({ template : '
    <h1>Hello Vue</h1>
    ' })
    
  3. 关于 template 配置项:

    template 翻译为:模板。
    template 配置项用来指定什么?用来指定模板语句,模板语句是一个字符串形式的。

  4. 什么是模板语句?

    Vue 框架自己制定了一些具有特殊含义的特殊符号。

    Vue 的模板语句是 Vue 框架自己搞的一套语法规则。
    我们写 Vue 模板语句的时候,不能乱写,要遵守 Vue 框架的模板语法规则。
    模板语句可以是一个纯粹的 HTML 代码,也可以是 Vue 中的特殊规则。也可以是 HTML 代码 + Vue 的特殊规则。
    template 后面的模板语句会被 Vue 框架的编译器进行编译,转换成浏览器能够识别的 HTML 代码。

第二步 : 将 Vue 实例挂在到**id = 'app'**的元素位置

  1. Vue 实例都有一个$mount()​ 方法 , 这个方法的作用是什么?

    • 将 Vue 实例挂在到指定位置
  2. #app​ 显然是 Id 选择器 , 这个语法借鉴了 CSS

3. Vue 的 data 配置项

data 配置项,它可以帮助我们动态的渲染页面


模板语句的数据来源:

  1. 谁可以给模板语句提供数据支持呢?

    • data 选项。
  2. data 选项的类型是什么?

    • Object | Function (对象或者函数)
  3. data 配置项的专业叫法:Vue 实例的数据对象.(data 实际上是给整个 Vue 实例提供数据来源的。)

  4. 如果 data 是对象的话,对象必须是纯粹的对象 (含有零个或多个的 key/value 对)

  5. data 数据如何插入到模板语句当中?

    • {{}} 这是 Vue 框架自己搞的一套语法,别的框架看不懂的,浏览器也是不能够识别的。

    • Vue 框架自己是能够看懂的。这种语法在 Vue 框架中被称为:模板语法中的插值语法。(有的人把他叫做胡子语法。)

    • 怎么用? ——> {{data的key}}

    • ​ 插值语法的小细节:

      1. {这里不能有其它字符包括空格{
      2. }这里不能有其它字符包括空格}

当 data 发生改变时,template 模板会被重新编译,重新渲染。

代码示例 :

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <script src="js/vue.js"></script>
    <title>模板语句的数据来源</title>
  </head>
  <body>
    <div id="app"></div>
    <script>
      const myVue = new Vue({
        template:
          "<h1>{{name}}是由{{author}}编写的一部{{Description}}<br>主角为 : {{character[0].name}} , 年龄:{{character[0].age}}<br>{{lead.name}} , {{lead.age}}</h1>",

        data: {
          name: "《剑来》",
          author: "烽火戏诸侯",
          Description: "网络小说",

          // 数组 , 要使用索引
          character: [
            {
              name: "陈平安",
              age: 19,
            },
          ],
          lead: {
            name: "宁姚",
            age: 18,
          },
        },
      });
      myVue.$mount("#app");
    </script>
  </body>
</html>

4. Vue 的 template 配置项

关于 template 配置项:

  1. template 后面指定的是模板语句,但是模板语句中只能有一个根节点。
  2. 只要 data 中的数据发生变化,模板语句一定会重新编译。(只要 data 变,template 就会重新编译,重新渲染)
  3. 如果使用 template 配置项的话,指定挂载位置的元素会被替换。
  4. 好消息:目前可以不使用 template 来编写模板语句。这些模板语句可以直接写到 html 标签中。Vue 框架能够找到并编译,然后渲染。
  5. 如果直接将模板语句编写到 HTML 标签中,指定的挂载位置就不会被替换了。

关于$mount('#app')?

  1. 也可以不使用$mount('#app')的方式进行挂载了。
  2. 在 Vue 中有一个配置项:el
    • el 配置项和$mount()可以达到同样的效果。
    • el 配置项的作用?
      1. 告诉 Vue 实例去接管哪个容器。
      2. el : '#app',表示让 Vue 实例去接管 id='app'的容器。
      3. el 其实是 element 的缩写。被翻译为元素。

语法展示为 :

<!DOCTYPE html>

<html lang="en">
   
  <head>
       
    <meta charset="UTF-8" />

       
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

       
    <script src="js/vue.js"></script>

       
    <title>template配置项详解</title>

     
  </head>

   
  <body>
       
    <div id="app">
           
      <div>{{msg}}</div>

           
      <div>{{age}}</div>

         
    </div>

       
    <script>
      const myVue = new Vue({
        // template : '<div><div>',

        data: {
          msg: "陈平安",

          age: 19,
        },

        el: "#app", //el : document.getElementById('app')
      }); //}).$mount('#app')
    </script>

     
  </body>
</html>

5. 解决控制台上的提示信息和错误信息

  • Vue.config 是 Vue 的全局配置对象。
  • productionTip 属性可以设置是否生成生产提示信息。
  • 默认值:true。如果是 false 则表示阻止生成提示信息。
  • Vue.config.productionTip = false

彻底解决的方案:

  1. 进入源码 , 找到 productionTip: true
  2. 将其改为 false

6. Vue 开发者工具初体验

7. Vue 实例和容器的一夫一妻制

一个 Vue 实例可以接管多个容器吗?

  • 不能。一个 Vue 实例只能接管一个容器。一旦接管到容器之后,即使后面有相同的容器,Vue也是不管的。因为Vue实例已经“娶到媳妇”了。
  • 先来后到的原则

代码示例 :

<!DOCTYPE html>

<html lang="en">
   
  <head>
       
    <meta charset="UTF-8" />

       
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />

       
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

       
    <title>Vue实例 和 容器 的关系是:一夫一妻制</title>

       
    <!-- 安装Vue -->

       
    <script src="../js/vue.js"></script>

     
  </head>

   
  <body>
       
    <!-- 准备容器 -->

       
    <div class="app">
           
      <h1>{{msg}}</h1>

         
    </div>

       
    <div class="app">
           
      <h1>{{msg}}</h1>

         
    </div>

       
    <!-- 准备容器 -->

       
    <div id="app2">
           
      <h1>{{name}}</h1>

         
    </div>

       
    <!-- vue程序 -->

       
    <script>
      /*

            验证:一个Vue实例可以接管多个容器吗?

                不能。一个Vue实例只能接管一个容器。一旦接管到容器之后,即使后面有相同的容器,Vue也是不管的。因为Vue实例已经“娶到媳妇”了。

        */

      new Vue({
        el: ".app",

        data: {
          msg: "Hello Vue!",
        },
      });

      new Vue({
        el: "#app2",

        data: {
          name: "zhangsan",
        },
      }); // 这个Vue实例想去接管 id='app2'的容器,但是这个容器已经被上面那个Vue接管了。他只能“打光棍”了。

      new Vue({
        el: "#app2",

        data: {
          name: "jackson",
        },
      });
    </script>

     
  </body>
</html>

标签:语句,初体验,实例,程序,Vue,template,data,模板
From: https://www.cnblogs.com/NorthPoet/p/17537438.html

相关文章

  • COMP 23T2 shell程序
    COMP(2041|9044)23T2—Assignment1:Pigs1/8Assignment1:Pigsversion:1.3lastupdated:2022-07-04930AimsThisassignmentaimstogiveyoupracticeinShellprogramminggenerallyaclearconcreteunderstandingofGit'scoresemanticsNote:themateria......
  • Vue组件化编程
    一、非单文件组件1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<title>非单文件组件</title>6<scriptsrc="js/vue.js"></script>7</hea......
  • 创建Vue3.0工程
    使用vue-cli创建官方文档:https://cli.vuejs.org/zh/guide/creating-a-project.html#vue-create##查看@vue/cli版本,确保@vue/cli版本在4.5.0以上vue--version##安装或者升级你的@vue/clinpminstall-g@vue/cli##创建vuecreatevue_test##启动cdvue_testnpmr......
  • vue基础教程
    vue基础教程英文官网中文官网渐进式JavaScript框架作者:尤雨溪特点遵循MVVM编码简洁,体积小,运行效率高,适合移动/PC端开发它本身只关注UI,也可以引入其它第三方库开发借鉴Angular的模板和数据绑定技术借鉴React的组件化和虚拟DOM技术Vue周边库vue-cli:vue......
  • vue高级
    vue高级vue脚手架我们可以使用VueCLI来创建vue脚手架项目VueCLI官方文档安装vue/clinpminstall-g@vue/cli#或yarnglobaladd@vue/clivue--version#或vue-V#升级npmupdate-g@vue/cli#或者yarnglobalupgrade--latest@vue/cli创建一个vue项目#......
  • 2.【初级班】VS环境创建一个简单的程序(C,C++)
    本课知识点C,C++第一个程序生成程序输出窗口生成程序所在目录新建->项目Ctrl+Shift+N C:\Users\Administrator\Source\Repos\L001\Debug\include<stdio.h>voidmain(){printf("我的第一个程序helloworld!");getchar();}voidmain()//001-识记入口函数名main......
  • Vue(十二):列表渲染—— v-for
    1.基础使用<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>基本列表</title><scripttype="text/javascript"src="../js/vue.js"></script></head><!--......
  • 微信小程序websocke协议wss用nginx反向代理
    map$http_upgrade$connection_upgrade{defaultupgrade;''close;}upstreamwebsocket{serveryourip:port;}server{listen443;server_namexxxx.com;sslon;ssl_certificate/xx/xx/cert.crt;ssl_certificate_key/xx/xx/cert.key;......
  • windows尝试写了一个打开应用程序的
    usingSystem;usingSystem.Diagnostics;namespaceHelloWorld{classProgram{staticvoidMain(string[]args){try{//要打开的软件的路径stringsoftwarePath_idea="";......
  • 介绍Vue router的history模式以及如何配置history模式
    引言Vuerouter给我们提供了两种路由模式,分别是hash模式和history模式。其中默认是使用hash模式,即URL中带有一个#符号,但是处于业务或个人喜爱的差别,Vuerouter也提供了history模式。但是由于Vue是单页SPA应用,所以每个路由并没有对应的html文件。什么是history模式history模式特......