Vue基础

vue指令

内容绑定

v-text

设置标签的内容一般通过双大括号的表达式{{ }}去替换内容

{{ hello }}

v-html

与v-text类似区别在于html中的结构会被解析为标签设置元素的innerHTML,v-text只会解析文本

事件绑定

v-on

可以简写为@,绑定的方法在methods中

显示切换

v-show

原理是修改的元素的display实现隐藏,指令后的内容最终都会解析为布尔值

v-if

可以搭配v-else-if v-else使用

通过表达式来确认是否从dom树中删除

<body>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="app">
<button v-show="imgNum != '0'" @click="changeNum">上一张</button>
<img :src="imgNum+'.jpg'" alt="" class="picSize">
<button>下一张</button>
</div> <script>
var app = new Vue({
el:"#app",
data:{
imgNum:"1"
},
methods:{
changeNum: function(){
let n = parseInt(this.imgNum);
n++;
n %= 3;
this.imgNum = n.toString();
}
}
})
</script>
</body>

属性绑定

v-bind

可以通过简写:属性名来绑定属性

列表循环

v-for

通常搭配数组一起使用,语法(item,index) in 数据

        <ul>
<li v-for="(item,index) in noteHistory">
{{ item }} <span v-show="item?true:false" @click="deleteHistory(index)">x</span>
</li>
</ul>

双向数据绑定

v-model

绑定数据和表单元素相关联

<body>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="app">
<input type="text" v-model="message" @keyup.enter="updateList">
<ul>
<li v-for="(item,index) in noteHistory">
{{ item }} <span v-show="item?true:false" @click="deleteHistory(index)">x</span>
</li>
</ul>
<span v-show="noteHistory.length > 0 ">总条数:<strong> {{ noteHistory.length }} </strong> </span>
<button @click="clear" v-show="noteHistory.length > 0 ">清空</button>
</div> <script>
var app = new Vue({
el:"#app",
data:{
noteHistory:[],
message: ""
},
methods:{
updateList: function(){
this.noteHistory.push(this.message);
// 新增后清空message
this.message = "";
},
deleteHistory: function(index){
this.noteHistory.splice(index,1);
},
clear: function(){
this.noteHistory = [];
}
}
})
</script>
</body>

前期安装

  1. 我们的框架需要通过NPM来管理我们的NodeJs的包

    • 下载地址 https://nodejs.org/en 选择稳定版本
  2. Vue CLi是vue的脚手架,我们通过命令npm install -g@vue/cli创建一个项目vue create + 项目名称
  3. package.json所有的依赖包都在这里,我们可以通过npm install 安装
    • 通过npm run serve运行

组件开发

  1. 组件后缀名都是.vue
  2. 每个组件基本有三部分组成template标签中是组件的结构,script放入组件js代码,style是组件的样式代码
<template>
<div>
<h1>{{ question }}</h1>
</div>
</template>
<script>
export default{
name:"movie",
data:function(){
return {
question:"显示问题"
}
}
}
</script>

父组件传值props两种方法一种通过路由对象获取

第二种方法,需要在main.js中routes设置属性props:true,组件中在定义属性名称

//动态路由
[{path:'song/:id',component: Song, props:true}]
<template>
<div>
<!-- 第一种方法获取路由中的id-->
<h6>{{ $route.params.id }}</h6>
<!-- 第二种办法是设置props-->
<h6>{{ id }}</h6>
</div> </template> <script>
export default({
props:['id']
})
</script>

element.ui

安装npm i element-ui -s

方便使用我们可以在main.js里面全局import ElementUI from 'element-ui'

Axios:前端页面向服务器发起请求

安装

npm install axios

在项目的main.js中导入,同时设置请求baseUrl

import axios from 'axios'
axios.defaults.baseURL = "http://127.0.0.1:5000"
Vue.prototype.$http = axios

发送网络请求

第一个then后面跟着处理成功的情况,catch用来处理失败的情况,最后一个then总是会执行的。

get请求

axios.get(uri,{params:{ }}).then(function(response)){ }.catch(function(error){ }).then(function(){ })

post请求

axios.post(uri,{ }).then(function(response)){ }.catch(function(error){ })

在需要使用的网络请求的地方使用

export default {
name: 'App',
data(){
return {
name: "",
age: 0
}
},
components: {
HelloWorld,
movie
},
//网络请求一般在created里面做,在挂载的时候做
created:function(){
this.$http.post("/index",{"name":"Jack","age":30})
.then((response)=>{
console.log(response.data.name);
this.name = response.data.name;
this.age = response.data.age;
})
.catch((error)=>{
console.log(error.data.name);
console.log(error);
})
}
}

mockjs

npm install mockjs

在项目创建mock目录,新建index.js文件

//引入mock.js
import Mock from 'mockjs'
//使用mockjs
Mock.mock(RegExp('/index'),{"name":"MOCK","age":30})

在项目中main.js中导入就可以了,如果不想用了直接删掉main.js中导入的包即可

import './mock'

VueRouter

这是官方的路由组件,用来管理单页面的路由和组件的映射

安装npm install vue-router@3 (vue2)npm install vue-router@4 (vue3)

在需要管理的组件(.Vue)中做路由链接,需要使用路由站位标签

<template>
<div>
<h1>我的音乐</h1>
<!-- 声明路由链接-->
<router-link to="/my/song/1">歌曲1</router-link>
<router-link to="/my/song/2">歌曲2</router-link>
<router-link to="/my/song/3">歌曲3</router-link>
<!-- 路由需要站位标签-->
<router-view></router-view>
</div>
</template>

新建一个文件router,在文件下新建一个index.js

通过routes来控制路由和组件的映射:重定向、路由嵌套、动态路由

import VueRouter from "vue-router";
import Vue from "vue";
//把需要的组件导入进来
import Discover from '../components/Discover'
import Friend from '../components/Friend'
import My from '../components/My'
import Music from '../components/Music'
import Song from '../components/Song'
//将vuerouter注册为vue的插件
Vue.use(VueRouter)
// 执行属性与组件的对应关系
const router = new VueRouter({
routes:[
//首页重定向
{path:'/',redirect: Discover},
{path:'/discover',component: Discover,
//通过children来声明子路由,做路由嵌套/discover/music
children:[
{path:'music',component: Music}
]
},
{path:'/friend',component: Friend},
{path:'/my',component: My,children:
//动态路由
[{path:'song/:id',component: Song, props:true}]
}
]
})
//需要做一个导出
export default router

在项目的main.js中导入并且在Vue中添加上这个router

import router from './router'
Vue.config.productionTip = false
new Vue({
render: h => h(App),
//key和value名字一直可以就写一个key
router
}).$mount('#app')

Vue框架快速上手的更多相关文章

  1. Activiti工作流框架——快速上手

        一.前言 最近在做公司的OA,里面有用到工作流,公司用的是 jbpm4,感觉比较老,资料有点少,就先学学 新一点的 activiti  ㄟ(▔▽▔)ㄏ 首先工作流的概念是:工作流(Workfl ...

  2. Caliburn Micro框架快速上手(WP)

    一.使用nuget添加起始工程         二.修改App.xaml文件和App.xaml.cs文件     AppBootstrapper介绍: AppBootstrapper根据中文的直译可以 ...

  3. Vue.JS快速上手(组件生命周期)

    一.什么是组件 组成网页独立功能基本单元(片段), 复用.维护.性能, Vue.js中的组件就是一个Vue的实例,Vue中的组件包含data/methods/computed. 一个Vue.js的应用 ...

  4. Vue.JS快速上手(组件间的通信)

    前言 Vue采用的是组件化思想,那么这些组件间是如何通信的呢?下面详细介绍一下. 所谓组件间通信,不单单是我们字面上理解的相互传递数据,这里还包括一个组件访问另一个组件的实例方法等,如父组件通过ref ...

  5. Vue.JS快速上手(指令和实例方法)

    1.声明式渲染 首先,我们要知道Vue是声明式渲染,那啥是声明式渲染,我们只需要告诉程序我们想要什么结果,其他的交给程序来做.与声明式渲染相对的是命令式渲染,即命令我们的程序去做什么,程序就会跟着你的 ...

  6. Vue.JS快速上手(Vue-router 实现SPA 开发)

    一.什么是路由 URL -> 映射 -> 组件 Hash+onhashchange History.pushstate+replaceState+onpopstate 二.准备工作 组件 ...

  7. vue.js和vue-router和vuex快速上手知识

    vue.js和vue-router和vuex快速上手知识 一直以来,认为vue相比react而言,学习成本会更低,会更简单,但最近真正接触后,发现vue的各方面都有做一些客户化的优化,有一些亮点,但也 ...

  8. 快速上手最新的 Vue CLI 3

    翻译:疯狂的技术宅 原文:blog.logrocket.com/getting-sta- 概要:本文将指导你快速上手 Vue CLI 3,包括最新的用户图形界面和即时原型制作功能的使用步骤. 介绍 尤 ...

  9. 可靠通信的保障 —— 使用ACK机制发送自定义信息——ESFramework 通信框架4.0 快速上手(12)

    使用ESPlus.Application.CustomizeInfo.Passive.ICustomizeInfoOutter接口的Send方法,我们已经可以给服务端或其它在线客户端发送自定义信息了, ...

  10. 如何快速上手一个新技术之vue学习经验

    碰到紧急项目挪别人的vue项目过来直接改,但是vue是18年初看过一遍,18年底再来用,早就忘到九霄云外了,结果丢脸的从打开vue开始学,虽然之前在有道云笔记做了很多记录,然后没有系统整理.所以借这次 ...

随机推荐

  1. harbor 搭建和部署

    Docker官方的Docker Registry镜像,可以用来储存和分发Docker镜像.不过实在不昨的,仅仅能储存和分发镜像,也不提供UI,你还得自己找一个过时的UI搭建,受限制于Docker Re ...

  2. 续《基于C# 开发的SOL SERVER 操作数据库类(SQLHelp》 ——第二弹

    续上一节,本节给出SQLHelp的具体实现方法--<YSFSQLHelp>,个人根据自己需要新建适合的类,本节根据参考网上资料,根据自己的需要编写的SQL帮助类.下面直接给出具体实现: / ...

  3. 自己动手实现rpc框架(二) 实现集群间rpc通信

    自己动手实现rpc框架(二) 实现集群间rpc通信 1. 集群间rpc通信 上一篇博客中MyRpc框架实现了基本的点对点rpc通信功能.而在这篇博客中我们需要实现MyRpc的集群间rpc通信功能. 自 ...

  4. maven报错:不再支持源选项 5。请使用 6 或更高版本

    问题描述 在执行命令 mvn compile 发生错误 D:\Github_NOTES\JavaWeb_Learning\02Java\JavaWeb\Code\Maven1>mvn clean ...

  5. 基于GPT搭建私有知识库聊天机器人(三)向量数据训练

    在前面的文章中,我们介绍了实现原理和基本环境安装.本文将重点介绍数据训练的流程,以及如何加载.切割.训练数据,并使用向量数据库Milvus进行数据存储. 1. 数据训练依赖于向量数据库 在本文中,我们 ...

  6. 从逻辑门到 CPU

    目的,造一个很简单的,概念上的 CPU,虽然简单,但是是五脏俱全的 CPU 从最基础的逻辑门开始造,零基础可以看 制造基本武器:与门.非门.或门 现在计算机都是二进制,那二进制是一开始就能想到的吗?显 ...

  7. OSS的使用(谷粒商城58-64)

    OSS的使用(谷粒商城58-64) 购买之类的就不在这里详述了,阿里云文档几乎都写了 创建bucket 学习阶段,相对独特的点在于我们需要选择公共读 项目开发阶段,不能选择公共读了,要尽量选择私有(代 ...

  8. Geo

    Geo 应用情景 打车时寻找半径在多少范围的司机 查找附近的酒店,微信摇一摇 Linux中文乱码如何处理? redis-cli --raw docker: docker exec -it redis ...

  9. jquery解决跨域问题

    在Ajax请求的url不是本地或者同一个服务器下面的URI,最后虽然请求显示为200,但是不会返回任何数据,事实上简单来说请求同一个域名下的url或者说用不带http的绝对路径和相对路径请求是没有任何 ...

  10. 西门子HMI切换页面时的指示功能

    怎么样才能做到像这样按下切换界面的按钮,切换过去之后对应的切换按钮还进行高亮指示呢? 首先我们要先新建模板,把我们的画面拖拽到模板里就会形成按钮 在画面的"属性"中 在属性中选上我 ...