vue项目创建流程和使用
vue项目的创建
npm run dev 让项目执行起来
#下载vuex
npm install vuex --save
#下载axios
npm install axios --save
当我们生成项目的时候我们关系的src文件,
创建一个components文件夹,来放置vue的文件,
可以进行创建更多的文件夹进行分类.
每次创建一个组件都需要
<template> </template> <script>
export default{
name:'VnoteList',
data(){
return{ }
}
} </script> <style scoped></style>
data必须是一个函数,且必须return一个对象,
当我们需要引入组件的时候需要有两个步骤:
1.引入当前文件
2.挂载
<script>
import VnoteShow from './VnoteShow'
import Vmark from './Vmark'
export default{
name:'Vnote',
data(){
return { }
},
components:{
VnoteShow,
Vmark,
}
}
</script>
那么在template显示就可以:
<template>
<VnoteShow></VnoteShow>
显示组件的内容
</template>
index.js下的ruouter 路由的使用:
import Vue from 'vue'
import Router from 'vue-router'
import Vmain from '@/components/Vmain'
import Vnote from '@/components/Vnote'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'Vmain',
component: Vmain
},
{
path: '/note',
name: 'Vnote',
component: Vnote
},
]
})
如何引用bootstrap?
首先我们需要先下载到我们的项目上,
npm install bootstrap@3 --save
当下在成功的时候我们在package.json里可以看到
在App.vue里我们执行下面的代码,就可以引入我们的bootstrap
<script> import 'bootstrap/dist/css/bootstrap.min.css'
</script>
如何让路由保持状态?
###########html部分########
<template>
<ul class="nav navbar-nav">
<li v-for='(item,index) in routes ' :class="{active:currentIndex == index}" @click='ActiveHandler(item)'>
<router-link :to='item.url'>{{item.title}}</router-link>
</li>
</ul>
</template> #####################js##########
<script>
export default{
name:'Vheader',
data(){
return{
routes:[
{url:'/',title:'我的首页'},
{url:'/note',title:'我的笔记'},
],
currentIndex:0, }
},
methods:{
ActiveHandler(item){
this.currentIndex = item.index;
}
},
created(){
for (var i=0;i<this.routes.length;i++){
if (this.routes[i].url == this.$route.path){
this.currentIndex =i;
return;
}
}
}
}
</script>
created方法是在加载一开始的时候触发,
主要解决了刷新保持选中状态.
***思路***
遍历对象,并对比用户访问的url,如果匹配成功则
this.currentIndex =i;改变当前的索引并跳出循环
this.$route.path会拿到访问的路由
构建表单结构:
如何获取html里的内容,这里我们需要在标签里面设置属性,
再根据上面的数据构建就可以获取html的文本
vuex
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。
以上是官方文档的介绍:
这个状态自管理应用包含以下几个部分:
- state,驱动应用的数据源;
- view,以声明方式将 state 映射到视图;
- actions,响应在 view 上的用户输入导致的状态变化。
以下是一个表示“单向数据流”理念的极简示意:
那么白话文来说
vuex就是来管理数据,
1.当前端发送请求到后端取数据,通过vuex这个借口,
2.当前端想拿后端传过来的数据进行渲染,在vuex这个获取
在我个人看来vuex就是进行数据的统一调度.
使用:
先看我们的原理图:数据先到Aciton然后commit到Mutations再来驱动状态从而改变视图
命名规范:mutations里的方法全用大写,而actions的用驼峰式.
Vue.use(Vuex);
const store = new Vuex.Store({
state: {
allList:[]
note:{
title:'',
content:'',
markdown:''
} //这里面的状态跟每个组件的数据属性有关系
},
mutations:{
ADDONENOTE(state,newData){
state.allList=newData;
}
},
actions:{
addOneNote(contenxt){
$.ajax({
url:'',
type:'post',
data:json,
success:function(data){
contenxt.commit('ADDONENOTE',data)
},
error:function(err){
}
})
},
我们只要将整理好的数据通过this.$store.dispatch('方法名',数据)就会触发该流程.上述用的是jquery的ajax技术,但是我们vue一般不用
用到的是axios技术,
axios
初始化的时候获取数据:
//main.js
import Vuex from 'vuex'
import axios from 'axios' Vue.use(Vuex);
Vue.use(axios); const store = new Vuex.Store({
state: {
allCourseList:[] //这里面的状态跟每个组件的数据属性有关系
},
mutations: {
GETCOURSELIST(state,newValue){
state.allCourseList =newValue;
} }, actions:{
GetCourseList(context,){
axios.request({
url:'http://127.0.0.1:8000/api/v2/course/',
method:'GET',
}).then(function(ret){
context.commit('GETCOURSELIST',ret.data)
}).catch(function(ret){
}) }
},
}); //需要挂载
new Vue({
el: '#app',
//注册了的需要在这里挂载
router,
store,
axios,
components: { App },
template: '<App/>'
});
main.js
<script>
import Vheader from './components/Vheader'
import 'bootstrap/dist/css/bootstrap.min.css'
export default {
name: 'App',
components:{
Vheader,
},
mounted(){
this.$store.dispatch('GetCourseList');
} }
</script>
App.vue
<template>
<ul>
<VcourseItem v-for="(item,index) in GetAllList" :data="item"></VcourseItem>
</ul>
</template> <script>
import VcourseItem from './VcourseItem'
export default {
name: "VcourseList",
data() {
return {}
},
components:{
VcourseItem,
},
computed:{
GetAllList(){
return this.$store.state.allCourseList
},
}
}
</script>
vue获取数据
Mutations和Actions
如果我们只用到mutations,那么这只能是个同步操作,用户体验不好,
this.$store.commit('方法名',数据)
设想一个情景,如果用户提交数据卡住了,那么用户将不能再操作该页面的,只有等待同步结束才能继续.
使用actions就是异步的操作. 建议使用.
mounted 和 created
mounted是在项目加载结束后调用的
一般用于初始化数据库里的数据
created是在项目刚加载的时候调用,
一般用于Dom的创建
mounted(){
mounted是在项目加载结束后调用的
}, created(){
created是在项目刚加载的时候调用,
}
props:{
#父向子传值,进行数据验证
}
components:{
#挂载
}
methods:{
#方法存放
}
computed:{
GetAllList(){
return this.$store.state.allCourseList
},
vue项目创建流程和使用的更多相关文章
- vue项目创建步骤 和 路由router知识点
菜单快捷导航: vue项目创建 vue路由router知识点(路径参数.查询参数.命名路由.嵌套路由.命名视图.hash/history模式) 1.创建一个vue项目步骤 (windows环境下).创 ...
- ADF 项目创建流程
ADF 项目创建流程: 1.首先建好应用 2.创建model,UI 3.创建EO,VO,AO, VL 4.设置EO的属性 5.新建lov 6.设置VO的View Accessors,并设置Attrib ...
- Vue项目搭建流程 以及 目录结构构建
Vue项目搭建流程 以及 目录结构构建 一个小的Vue项目, 基于微信浏览器的移动端, 做了这么多的练习项目, 这一次准备记录下构建的过程, 以方便以后的调高效率 环境准备 操作系统 我的 windo ...
- 1219 Vue项目创建及基础
目录 vue项目 1. 项目创建 cmd创建 可视化创建 2. 项目启动 vue重新构建依赖 pycharm管理vue项目 3. 项目目录介绍 index.html index.js App.vue ...
- vue项目创建与使用
目录 复习 Vue项目环境搭建 Vue项目创建 pycharm配置并启动vue项目 vue项目目录结构分析 vue组件(.vue文件) 全局脚本文件main.js(项目入口) 改写 vue项目启动生命 ...
- vue项目创建
使用命令行工具npm新创建一个vue项目 使用vue开发项目的前期工作可以参考前面写的: Vue环境搭建及node安装过程整理 Vue.js 提供一个官方命令行工具,可用于快速搭建大型单页应用. ...
- Vue项目搭建流程
记录一下vue项目的搭建流程. 1.安装node.npm 下载地址为:https://nodejs.org/en/ 设置环境变量,命令行分别输入: node -v npm -v 查看安装是否成功 ...
- @vue-cli的安装及vue项目创建
1.安装 Node.js & Vue CLI @vue/cli3,是vue-进行搭建的脚手架项目,它本质上是一个全局安装的 npm 包,通过安装它,可以为终端提供 vue 命令,进行vue项目 ...
- Vue.js系列(一):Vue项目创建详解
引言 Vue.js作为目前最热门最具前景的前端框架之一,其提供了一种帮助我们快速构建并开发前端项目的新的思维模式.本文旨在帮助大家认识Vue.js,并详细介绍使用vue-cli脚手架工具快速的构建Vu ...
随机推荐
- POJ 2503-Babelfish(map)
题目地址:POJ 2503 题意:输入一个字典.字典格式为"英语 外语"的一一映射关系然后输入若干个外语单词.输出他们的 英语翻译单词,假设字典中不存在这个单词,则输出" ...
- 性能测试篇 :Jmeter HTTP代理服务器录制压力脚本
转载:http://www.cnblogs.com/chengtch/p/6067915.html 从loadrunner到jmeter,录制压力测试脚本好像都只支持IE,近来才知道jmeter还有自 ...
- IOS 开发环境,证书和授权文件是什么?
一.成员介绍 1. Certification(证书) 证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种: 1) Developer Certification(开发证书) 安装 ...
- Codeforces 463C Gargari and Bishops 题解
题目出处: http://codeforces.com/contest/463/problem/C 感觉本题还是挺难的.须要好好总结一下. 计算对角线的公式: 1 右斜对角线,也叫主对角线的下标计算公 ...
- openstack-计算节点安装(Node)
感谢朋友支持本博客,欢迎共同探讨交流.因为能力和时间有限.错误之处在所难免,欢迎指正. 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...
- 【SpringMVC学习11】SpringMVC中的拦截器
Springmvc的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理.本文主要总结一下springmvc中拦截器是如何定义的,以及测试拦截器的执行情况和使用 ...
- .NET CORE 2.0小白笔记(二):VS插件 ReSharper Ultimate 2017 安装破解
采用Use License Server方式激活,如果有多台要激活的可以用一个当服务器 下载网盘:链接: https://pan.baidu.com/s/1nvacvKP 密码: ipxc 版本:Je ...
- Ansible@一个高效的配置管理工具--Ansible configure management--翻译(五)
无书面许可请勿转载 高级Playbook Extra variables You may have seen in our template example in the previous chapt ...
- OrCAD16.6中对比两份DSN文件的方法
OrCAD16.6中对比两份改版前后DSN文件的方法 两种方法: (1)第一种用软件对比netlist (2)用orcad自带的对比功能 一.将两份要对比的原理图都生成orTelesis.dll格式的 ...
- Spring事务管理之声明式事务管理:基于TransactionProxyFactoryBean的方式
© 版权声明:本文为博主原创文章,转载请注明出处 案例 - 利用Spring的声明式事务(TransactionProxyFactoryBean)管理模拟转账过程 数据库准备 -- 创建表 CREAT ...