vue入门介绍以及语法

一丶介绍 1 vue是什么 Vue (读音 vjuː ,类似于 view) 是一套用于构建用户界面的渐进式框架。 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>

 

 

 

 

 

 
您可能有感兴趣的文章
vue从后台渲染文章列表以及根据id跳转文章详情详解

Vue2.0 如何实现歌手列表滚动及右侧快速入口功能

vue.javascript删除列表中的一行

在vue中给列表中的奇数行添加class的如何实现方法

Vue之项目搭建