nodejs--vue


基础知识认识:

前端工程化

	最近才兴起,nodejs(包的管理更加方便),webpack

数据双向绑定

		mvm 	数据驱动vue,vue改变数据

组件化开发

vue 中的常见 概念:

	webpack 

		目的:把所有的 vue文件或者其他文件 转换成  js文件

	vue (框架),vuex(组件间的通信), vue-router(路径--组件关联,跳转),axios(ajax,http请求包)

	ES6(ES6语法),babel(转换器--转换成ES5)

vue框架的优势:
比 jquery 效率更好 前后端分离 --- 只提供数据
前后端融合 --- render 速度快,灵活,学习快

vue的基本语法

  • {{}} 插入值,里面可以放表达式

  • 指令 v-*:是带有V-前缀的特殊属性,通过属性来操作元素

事件绑定-- v-on: @

属性绑定 -- v-bind: :

	v-text 在元素中插入值

	v-html 文本 加 标签

	v-if  控制标签是否被注释

	v-show 控制标签是否显示 (display)

	v-for 循环渲染 标签

		数组循环
v-for='(item,index) in arr' {{item}}:{{index}} 对象循环
v-for='(item,key,index) in obj' {{item}}:{{key}}:{{index}} v-on 监听元素时间,并且执行相应的操作 函数
v-on:click='show()'
简写
@click='func1()' 对数组进行操作 push
pop
shift
unshift
splice
reverse 元素删除 修改 定义在new Vue 中的变量,相应的dom元素也会改变 this.arr.pop(); v-bind 绑定元素的属性 来执行相应的操作
v-bind:href='url'
简写
:href='url1' v-bind:class='{div:isTrue}' v-model 实现了视图和数据的双向绑定 把元素的值和数据绑定
当输入内容时,数据相应变化
当改变数据时,输入的内容也会发生改变

vue 的设计模式是MVVM

MVVM  Model- View-ViewModel  数据展示到视图是通过ViewModel控制上去的
组件的概念就是由html,css,js构成的一个模块 模块:一个js文件就是一个模块、
vue的组件是通过一个工具(webpack)进行打包,打包成一个*.vue
webpack:一个打包机,将我们html,css,js等等打包成一个文件让我们浏览器识别。捆绑

vue的核心用法 :

1、模板语法:使用{{}}进行插值

2、指令系统:v-if,v-show,v-bind,v-on,v-for,v-model,v-html

v-if:真正的条件渲染
v-show:惰性的渲染,这个渲染方式会在标签上加style样式
v-bind:绑定属性,可以在任何的标签中绑定标签中自己的属性和自定义的属性
v-on:绑定事件,可以绑定js中所有的事件,包括click,hover,mouseover......
v-for:遍历数组
v-mode:表单控件中实现双向数据绑定
v-html:双大括号会将数据解释为普通文本,而非 HTML 代码。为了输出真正的 HTML,你需要使用 v-html 指令 3、computed计算属性
注意:使用computed的时候默认只有getter ,它能实时监听数据属性的变化。当然了,在必要的时候我们还可以加setter

如何使用npm

npm全称:node package manger

使用npm
1.执行npm init 初始化项目 自动生成一个package.json的文件 2.npm install jquery --save
下载相应的jquery的包,并自动的生成node_modules的文件夹到该文件夹下 3.npm uninstall jquery --save 卸载jquery的包

package.json管理着我们当前项目需要的包

有时候我们会讲我们的写好的项目代码上传到github上,但github只允许上传100兆以上的项目,这时候node_modules在上传的时候会被
忽略。但是package.json管理着我们当前项目需要的包,那么我们从github上下载当前项目中,安装readme的文档提示做需求即可,一般需要npm instal

vue中的数据流

 ===》自上而下

组件之间的通信:

1.父组件往子组件传值:使用自定义属性,子组件一定要验证自定义的属性的类型
2.子组件往父组件传值:使用自定义事件
3.同级组件之间的传值:官方建议使用vuex,第三天会讲

vue+vue-router 来创建单页面应用

单页面应用的网站:知乎、稀土掘金、少数派、网易云、饿了么移动端、豆瓣等等

使用vue-router

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script> <div id="app">
<h1>Hello App!</h1>
<p>
<!-- 使用 router-link 组件来导航. -->
<!-- 通过传入 `to` 属性指定链接. -->
<!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
<router-link to="/foo">Go to Foo</router-link>
<router-link to="/bar">Go to Bar</router-link>
</p>
<!-- 路由出口 -->
<!-- 路由匹配到的组件将渲染在这里 -->
<router-view></router-view>
</div>
JavaScript
// 0. 如果使用模块化机制编程,导入Vue和VueRouter,要调用 Vue.use(VueRouter) // 1. 定义(路由)组件。
// 可以从其他文件 import 进来
const Foo = { template: '<div>foo</div>' }
const Bar = { template: '<div>bar</div>' } // 2. 定义路由
// 每个路由应该映射一个组件。 其中"component" 可以是
// 通过 Vue.extend() 创建的组件构造器,
// 或者,只是一个组件配置对象。
// 我们晚点再讨论嵌套路由。
const routes = [
{ path: '/foo', component: Foo },
{ path: '/bar', component: Bar }
] // 3. 创建 router 实例,然后传 `routes` 配置
// 你还可以传别的配置参数, 不过先这么简单着吧。
const router = new VueRouter({
routes // (缩写)相当于 routes: routes
}) // 4. 创建和挂载根实例。
// 记得要通过 router 配置参数注入路由,
// 从而让整个应用都有路由功能
const app = new Vue({
router
}).$mount('#app') // 现在,应用已经启动了!

实例

main.js

import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios'
import store from './store/store' Vue.prototype.$axios = axios;
// 全局变量的声明 ---
Vue.config.productionTip = false; /* eslint-disable no-new */
new Vue({
el: '#app',
router,
store,
components: { App },
template: '<App/>'
})

store/store.js

import Vue from 'vue'
import Vuex from 'vuex'
import Cookie from 'vue-cookies' Vue.use(Vuex); export default new Vuex.Store({
state:{
username:Cookie.get('username'),
token:Cookie.get('token')
},
mutations:{
// 组件中 通过 this.store.commit 参数 调用
saveToken(state,data){
state.username = data.username;
state.token = data.token;
//设置到内存中
Cookie.set('username',data.username,'20min');
Cookie.set('token',data.token,'20min')
//设置到cookie中
},
clearToken(state){
state.username = null;
state.token = null;
Cookie.remove('username');
Cookie.remove('token')
}
}
})

router/index.js

import Vue from 'vue'
import Router from 'vue-router'
import Index from '@/components/Index'
import Login from '@/components/Login'
import Course from '@/components/Course'
import Luffy from '@/components/Luffy'
import News from '@/components/News'
import NotFound from '@/components/NotFound'
import CourseDetail from '@/components/CourseDetail' Vue.use(Router); export default new Router({
routes: [
{
path: '/',
name: 'Index',
component: Index
},
{
path: '/index',
name: 'Index',
component: Index
},
{
path: '/login',
name: 'Login',
component: Login
},
{
path: '/course',
name: 'Course',
component: Course
},
{
path: '/course/detail/:id/',
name: 'CourseDetail',
component: CourseDetail
},
{
path: '/luffy',
name: 'Luffy',
component: Luffy
},
{
path: '/news',
name: 'News',
component: News
},
{
path: '*',
name: '*',
component: NotFound
},
],
mode:'history'
})

Course.vue

<template>
<div class="course">
<ul>
<li v-for="item in courseArray">
<router-link :to="{'path':'/course/detail/'+item.id}">{{item.name}}</router-link>
</li>
</ul>
</div>
</template> <script>
export default {
name: 'Course',
data () {
return {
courseArray:[
]
}
},
mounted:function(){
this.initCourse()},
methods:{
initCourse(){
var that = this;
this.$axios.request({
url:'http://127.0.0.1:8000/course/',
method:'GET',
responseType:'json'
}).then(function (response) {
that.courseArray = response.data;
})
}
}
}
</script> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
li{
list-style: none;
}
</style>

nodejs--vue的更多相关文章

  1. nodejs+vue.js+webpack

    前端: nodejs+vue.js+webpack 后台:ssb(Spring+SpringMVC + mybatis-plus) 开发工具:idea 一.前提 1.安装nodejs 2.安装完nod ...

  2. nodejs, vue, webpack 项目实践

    vue 及 webpack,均不需要与nodejs一期使用,他们都可以单独使用到任何语言的框架中. http://jiongks.name/blog/just-vue/ https://cn.vuej ...

  3. nodejs vue的安装

    1.https://nodejs.org/en/ 下载最新版nodejs 2.安装好后win+R输入cmd(管理员权限键入):node -v(node版本)npm -v(npm版本)查看版本号,如图所 ...

  4. nodeJs+vue安装教程详解 相信

    相信很多朋友都在装node服务和安装vue的时候会遇到一些问题,下面为大家详细介绍node服务的安装以及vue的安装: 1.nodeJs官网下载版本(根据自己电脑的配置进行相应下载即可):默认安装路径 ...

  5. Windows安装VsCode 和Nodejs Vue

    一.安装VSCode 1.在官网下载并安装VSCode https://code.visualstudio.com/Download 注意:解压到非系统盘(节约系统盘空间,也方便后面使用) 文件夹最好 ...

  6. nodejs vue SyntaxError:Block-scoped declarations (let,const,function,class) not yet supported

    下午在git上导入之前写的代码到本地环境,执行npm run dev报错. 在我之前的环境中是没有问题的,这个错误信息也没看懂是什么原因引起的, 猜测可能是nodejs版本太低,于是重新下载了一个wi ...

  7. nodejs vue 微信公众号开发(二)申请微信测试号

    1.打开微信测试公众号开发平台http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 扫码登陆

  8. 在阿里云 ECS 搭建 nginx https nodejs 环境(三、nodejs)

    在阿里云 ECS 搭建 nginx https nodejs 环境(三.nodejs) 在阿里云 ECS 搭建 nginx https nodejs 环境(三.nodejs) 第一步 指定版本源 执行 ...

  9. vue不是内部或外部命令,配置一个Path系统变量就可以解决

    作为一个vue小白,最近为vue安装真是操碎了心.无论怎么查找网上的教程,还是解决不了"vue不是内部或外部的命令"诸如此类的问题.好在功夫不负有心人,终于在多次的试验下,成功解决 ...

  10. VUE初体验篇-安装

    现代前端框架大行其道,讲前端思想从操作dom的阶段,升级到操作数据的阶段.vue作为三大前端框架之一,其中平缓的学习曲线,让好多前端新手非常喜欢,应用也越来越广泛.虽然其他两个框架有facebook, ...

随机推荐

  1. Vuex核心知识(转)

    转:http://www.cnblogs.com/ghost-xyx/p/6380689.html Vuex 是一个专门为 Vue.js 应该程序开发的状态管理模式,它类似于 Redux 应用于 Re ...

  2. 使用TortoiseGit查看以前Commit的各个快照(snapshot)

    Swith/Checkout提供了这个功能. 比如从bcbc66627334204f879eff99f68e70af0ca7907e回退到dc3f82f2532fcb95e4f24c9f9c331a7 ...

  3. 佳能相机操作 EDSDK 教程 C# 版本

    http://blog.csdn.net/zajin/article/details/17021339    介绍 佳能EOS数码SDK是一个 可以用来远程控制其数码单反相机相当强大的SDK.不幸的是 ...

  4. JDK1.8(JRE)和eclipse-jee不匹配解决放

    想要用eclipse-jee的话,需要jdk1.8一下版本才能用. 1.需要下载jdk1.7 2.把jdk1.7安装(不需要设置环境变量). 3.在项目上右击选择properties 4.选择Java ...

  5. Loadrunder脚本篇——webservice接口测试(二)

    1.选择协议--Web Service,如下图 2.导入服务 入口1:点击Manage Services ->弹出窗中选择“Import” ->弹出窗中选择“URL”,填写wsdl地址,导 ...

  6. mybatis 一次执行多条SQL

    在默认情况下,一次性发过去的多条sql是不合法的. 想要让mysql一次执行多条sql语句,必须进行手动设置. 让mysql驱动开启批量执行sql的开关. 怎么开启呢?在拼装mysql链接的url时, ...

  7. STM32 USB虚拟串口

    串口调试在项目中被使用越来越多,串口资源的紧缺也变的尤为突出.很多本本人群,更是深有体会,不准备一个USB转串口工具就没办法进行开发.本章节来简单概述STM32低端芯片上的USB虚拟串口的移植.在官方 ...

  8. 【鸟哥的Linux私房菜】笔记3

    正确地开机 最好不要使用root账号登陆!GNOME图形界面 View items as a list X WindowShell 文本交互界面bash是Shell的名称,Linux的默认壳程序就是b ...

  9. 20145240《Java程序设计》课程总结

    20145240<Java程序设计>课程总结 每周读书笔记链接汇总 20145240 <Java程序设计>第一周学习总结:http://www.cnblogs.com/2014 ...

  10. 普通神经网络和RNN简单demo (一)

    2017-08-04 花了两天时间看了下神经网络的一点基础知识,包括单层的感知机模型,普通的没有记忆功能的多层神经网咯,还有递归神经网络RNN.这里主要是参考了一个博客,实现了几个简单的代码,这里把源 ...