zoukankan      html  css  js  c++  java
  • vue入门介绍以及语法

    一丶介绍

    1.vue是什么

    Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。

    Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

    官方网站:https://cn.vuejs.org

    2、初始Vue.js

    创建文件夹vue.js

    创建demo.html

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    
    <body>
        <!-- id标识着Vue的作用范围 -->
      <div id=app>
          <!-- {{}}插值表达式,绑定vue中的data中的数据 -->
       {{message}}
      </div>
    
      <script src='vue.min.js'></script>
      <script>
          //创建一个vue
        new Vue({
             el: '#app',  //绑定vue的作用范围
             data:{ //定义页面中显示的模型数据
                 message:'hello,vue!'
             }
    
         })
      
      
      </script>
    
    
    </body>
    
    </html>

    这就是声明式渲染:Vue.js的核心是一个允许采用简洁的模板语法来声明式的将数据渲染进DOM的系统

    这里的核心思想就是没有频繁的DOM操作,例如Jquery中,我们需要先找到div节点,获取到DOM对象,然后进行一系列的单点操作

    二丶基本语法

    1.基本数据渲染和指令

    创建 01-基本数据渲染和指令.html

    你看到的v-bind特性被称之为指令。指令带有前缀v-

    除了使用插值表达式{{}}进行数据的渲染,也可以使用v-bind指令,它的简写的形式就是一个冒号(:)

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    
    <body>
        <!-- id标识着Vue的作用范围 -->
      <div id=app>
          <!-- {{}}插值表达式,绑定vue中的data中的数据 -->
        {{message}}
        <h1>一级标题</h1>
        <!-- 如果要将模型数据绑定到html属性中,则使用v-bind指令
        此时title中显示的是模型数据 -->
        <h1 v-bind:title="message">一级标题</h1>
        <!-- v-bind指令的简写形式是:冒号(:) -->
        <h1 :title="message">一级标题</h1>
      </div>
    
      <script src='vue.min.js'></script>
      <script>
          //创建一个vue
        new Vue({
             el: '#app',  //绑定vue的作用范围
             data:{ //定义页面中显示的模型数据
                 message:'页面加载于' + new Date().toLocaleString()
             }
    
         })
      </script>
      
    </body>
    
    </html>

    2.双向数据绑定

    创建 02-双向数据绑定.html

    双向数据绑定和单向数据绑定:使用 v-model 进行双向数据绑定

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    
    <body>
        <div id="app">
            <!-- v-bind:value只能进行单向数据绑定 -->
         <input type="text" v-bind:value="keyword">
            <!-- v-model:value可以进行双向数据绑定 -->
         <input type="text" v-model:value="keyword">
         <p>{{keyword}}</p>
        </div>
        <script src="vue.min.js"></script>
        <script>
            new Vue({
                el: '#app',
                data: {
                   keyword:'你在世界的那个地方?' 
                }
            })
        </script>
    </body>
    
    </html>

    3、事件

    创建 03-事件.html

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    
    <body>
        <div id="app">
         <!-- v-on指令绑定事件,click指绑定事件的类型,事件发生时调用vue中的methods节点中定义的方法 -->
         <button v-on:click="search()">查询</button>
         <!-- 绑定事件指令可以使用@click来简写 -->
         <button @click="search()">查询2</button>
          <p>查询结构是:</p> <br>
          <!-- 加上:动态的去绑定 -->
          <a :href="result.site">{{result.name}}</a> <br>
           {{result.cite}} <br>
        </div>
        <script src="vue.min.js"></script>
        <script>
            new Vue({
                el: '#app',
                data: {
                    result:{}
                },
                // 定义事件函数
                methods: {//可以在其中定义方法
                    search:function(){
                        console.log('页面加载中.....')
    
                        this.result={
                            site:'http://www.baidu.com',
                            name: '百度',
                            cite: '[中国,哥伦比亚]'
                        }
                    }
                }
            })
        </script>
    </body>
    
    </html>

    三、路由

    vue.js允许我们通过不同的url访问不同的内容。

    通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)

    需要我们在项目中引入路由的文件 vue-router.min.js

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    
    <body>
        <div id="app">
         <h1>Hello,app</h1>
         <p>
             <!-- `router-link` 默认会被渲染成一个 `a` 标签
                  通过传入的 `to` 属性指定链接 -->
             <router-link to="/">首页</router-link>
             <router-link to="/student">会员管理</router-link>
             <router-link to="/teacher">讲师管理</router-link>
         </p>
         <!-- router-view 路由的出口
         路由匹配到的组件将渲染在这里面
        -->
         <router-view></router-view>
        </div>
    
        <script src="vue.min.js"></script>
        <script src="vue-router.min.js"></script>
    
        <script>
            //定义组件
            const Welcome={
                template:'<div>欢迎来到首页</div>'
            }
            const Student={
                template:'<div>会员等级列表</div>'
            }
            const Teacher={
                template:'<div>讲师列表</div>'
            }
            // 路由列表
            const routes=[
                {
                path: '/',redirect: '/welcome'//路由重定向
            },
            {
                path: '/welcome', component:Welcome 
            },
            {
                path: '/student',component:Student
            },
            {
                path:'/teacher',component:Teacher
            }
            ]
    
            // 路由对象:配置路由列表
            const router=new VueRouter({
                routes:routes   //定义路由列表
            })
    
            new Vue({
                el: '#app',
                data: {
                    
                },
                router:router //将路由对象装置在Vue的上下文中
            })
        </script>
    </body>
    
    </html>
     
  • 相关阅读:
    Linux下通过.desktop 文件创建桌面程序图标及文件编写方式(Desktop Entry文件概述)
    Ubuntu16.04进入挂起或休眠状态时按任何键都无法唤醒问题解决办法
    Ubuntu16.04+Gnome3 锁定屏幕快捷键无效解决办法
    A start job is running for Raise network interface(5min 13s )问题解决方法
    Ubuntu16.04 “有线未托管”有线网络不可用问题解决
    A start job is running for Network Manager wait online (29s / no limit) 等待30s解决办法
    Linux 串口终端调试工具minicom
    Linux 终端仿真程序Putty
    Oracle:在 debian9 上完美安装 oracle 10.2.0.5 x64
    从debian9、ubuntu18.04的deb包依赖来看,似乎不是那么好!!
  • 原文地址:https://www.cnblogs.com/xiaoqiqistudy/p/11763651.html
Copyright © 2011-2022 走看看