以传统程序员看Vue2.X开发-极简速成

2023-05-16

一、开发环境搭建

     1、安装Node.js
      下载地址:https://nodejs.org/zh-cn/download/
       按提示安装,根据系统环境不同,可能需要安装C++Build和Python.

      验证

C:\Users\zhoujy>node --version
v14.15.0

C:\Users\zhoujy>npm --version
6.14.8

     2、安装Vue组件
      因直接使用npm国外源安装速度较慢,推荐使用国内淘宝源
      

npm config set registry https://registry.npm.taobao.org

#验证

npm config get registry

 安装Vue最新稳定版

# 最新稳定版
npm install vue

安装其他依赖包 

npm install webpack -g
npm install vue-router -g
npm install vue-cli -g

二、创建项目与结构

vue init webpack my-vueapp

? Project name vue-application1
? Project description descript
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? No
? Set up unit tests No
? Setup e2e tests with Nightwatch? No
? Should we run `npm install` for you after the project has been created? (recommended) npm

   vue-cli · Generated "VueApp1".


# Installing project dependencies ...
# ========================

npm WARN deprecated extract-text-webpack-plugin@3.0.2: Deprecated. Please use wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

added 1274 packages from 675 contributors in 43.558s

40 packages are looking for funding
  run `npm fund` for details


# Project initialization finished!
# ========================

To get started:

  cd VueApp1
  npm run dev

Documentation can be found at https://vuejs-templates.github.io/webpack

 目录结构

这时候项目已经可以运行,进入项目目录,运行

>npm run dev

DONE  Compiled successfully in 3221ms                                                                                                                                                                                                                                                                            下午3:27:02

 I  Your application is running here: http://localhost:8080

 浏览器访问  http://localhost:8080

三、创建第一个组件

     在compenonts目录下创建第一个组件FirstPart.vue 代码如下

<template>
  <div class="FirstPart">
    <h1>{{ msg }}</h1>
    <h2 class="FirstPart">{{msg}}</h2>
    <input type="text" v-model="msg">
  </div>
</template>
<script>
export default {
  name: 'FirstPart',
  data () {
    return {
      msg: 'Hello world!第一个自定义组件'
    }
  }
}
</script>
<style>

</style>

四、加入路由使其可以访问

打开router目录下index.js,添加路径 /FirstPart

import Vue from 'vue'
import Router from 'vue-router'
import VueResource from 'vue-resource'
import HelloWorld from '@/components/HelloWorld'
import FirstPart from '@/components/FirstPart'
import ReadRemoteData from '@/components/ReadRemoteData'

Vue.use(Router)
Vue.use(VueResource)
export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    },
    {
      path: '/FirstPart',
      name: 'FirstPart',
      component: FirstPart
    },
    {
      path: '/ReadRemoteData',
      name: 'ReadRemoteData',
      component: ReadRemoteData
    }
  ]
})

保存后,浏览器访问地址http://localhost:8080/#/FirstPart, 内容已可访问如下。

五、服务器异步数据交互

异步数据访问使用vue-resource,在项目目录下安装vue-resource包

npm install vue-resource

在components目录下,添加ReadRemoteData.vue组件。

<template>
  <div class="ReadRemoteData">
    请输入关键字:<input type="text" v-model="keyword" @keyup="sendJsonP(keyword)">
    <ul>
        <li v-for="r in result">{{ r }}</li>
    </ul>
    <FirstPart></FirstPart>
  </div>
</template>
<script>
import FirstPart from '@/components/FirstPart'
import Vue from 'vue'
import VueResource from 'vue-resource'
Vue.use(VueResource)
export default {
  name: 'ReadRemoteData',
  components: {
    FirstPart
  },
  data () {
    return {
      keyword: '',
      result: ''
    }
  },
  methods: {
      sendJsonP(keyword) {
        let url = 'https://www.baidu.com/sugrec?pre=1&p=3&ie=utf-8&json=1&prod=pc&from=pc_web';
        this.$http.jsonp(url, {
          params: {
            wd: keyword
          },
          jsonp: 'cb'//jsonp默认是callback,百度缩写成了cb,所以需要指定下                     }
        }).then(res => {
          if (res.data.g) {
            this.result = res.data.g.map(x => x['q']);
          } else {
            this.result = [];
          }
        });
      }
  }  
}
</script>

 同样在路由中加入路径例使其可访问,并且在这个组件中可以重用刚才创建的组件FirstPart。Vue的组件可以重用和嵌套使用非常的方便。保存后访问http://localhost:8080/#/ReadRemoteData,内容如下

六、Visual Studio 2019创建开发Vue项目

     1、Visual Studio 2019中导入node.js开发环境

       菜单:工具->获取工具和功能,选中 node.js开发

安装完成后,进入Visual studio 2019, 新建项目->基于Vue.js的Web应用程序

下一步后,创建。创建后,Visual studio会在后台自动用npm进行文件安装,根据网络情况等完成就可以运行了。还可以用解决方案进行包管理及添加组件、文件等管理。

       

七、极简原理

根据Vue规则书写的网页会被node.js编译成一个.jsp文件由浏览器来执行渲染成网页,如下

app.js部分内容,主要是函数库和生成网页的内容

/******/ (function(modules) { // webpackBootstrap
/******/ 	function hotDisposeChunk(chunkId) {
/******/ 		delete installedChunks[chunkId];
/******/ 	}
/******/ 	var parentHotUpdateCallback = window["webpackHotUpdate"];
/******/ 	window["webpackHotUpdate"] = 
/******/ 	function webpackHotUpdateCallback(chunkId, moreModules) { // eslint-disable-line no-unused-vars
/******/ 		hotAddUpdateChunk(chunkId, moreModules);
/******/ 		if(parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);
/******/ 	} ;
/******/ 	
/******/ 	function hotDownloadUpdateChunk(chunkId) { // eslint-disable-line no-unused-vars

......

......

/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/ReadRemoteData.vue":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_FirstPart__ = __webpack_require__(\"./src/components/FirstPart.vue\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(\"./node_modules/vue/dist/vue.esm.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_resource__ = __webpack_require__(\"./node_modules/_vue-resource@1.5.1@vue-resource/dist/vue-resource.esm.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_2_vue_resource__[\"a\" /* default */]);\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n  name: 'ReadRemoteData',\n  components: {\n    FirstPart: __WEBPACK_IMPORTED_MODULE_0__components_FirstPart__[\"a\" /* default */]\n  },\n  data: function data() {\n    return {\n      keyword: '',\n      result: ''\n    };\n  },\n\n  methods: {\n    sendJsonP: function sendJsonP(keyword) {\n      var _this = this;\n\n      var url = 'https://www.baidu.com/sugrec?pre=1&p=3&ie=utf-8&json=1&prod=pc&from=pc_web';\n      this.$http.jsonp(url, {\n        params: {\n          wd: keyword\n        },\n        jsonp: 'cb' //jsonp默认是callback,百度缩写成了cb,所以需要指定下                     }\n      }).then(function (res) {\n        if (res.data.g) {\n          _this.result = res.data.g.map(function (x) {\n            return x['q'];\n          });\n        } else {\n          _this.result = [];\n        }\n      });\n    }\n  }\n\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVs

 执行npm run build时会在/dist目录下生成需发布的CSS jsp文件等,用webpack会更优发布的jsp库和资源等

 

最后希望微软出一个所见即所得的编辑环境,类似传统winFormApp程序,导入各种组件库把网页画好,加上一点事件驱动代码就可以运行了,前端一键开发,那微软定能重现VB时的辉煌! ^-^.

 

参考文档

1、https://cn.vuejs.org/

2、https://www.runoob.com/vue2/vue-tutorial.html

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以传统程序员看Vue2.X开发-极简速成 的相关文章

  • 【新】Vue2/3 自定义指令的实现

    新 Vue2 3 自定义指令的实现 写在前面自定义指令深入学习自定义指令钩子函数钩子函数的参数 一个完整的例子动态指令参数 写在前面 最近在做系统的页面按钮级权限时 xff0c 发现用自定义指令可以很优雅的解决这个问题 我们知道 xff0c
  • Vue2.x和Vue3.x-自定义指令的用法及钩子函数

    Vue2 x 用法 全局注册 Vue directive 指令名 自定义指令生命周期 局部注册 directives 指令名 自定义指令生命周期 使用 v 指令名 属性名 修饰符 61 value值 钩子函数 bind 自定义指令绑定到 D
  • 详解Vue2中的生命周期与钩子函数(Vue面试官必问系列)

    目录 一 概念 二 生命周期过程 1 流程图示 2 三阶段 三 钩子函数详解 1 beforeCreate 创建前 2 created 创建后 3 beforeMount 挂载前 4 mounted 挂载完成 5 beforeUpdate
  • 【前端vue2面试题】2023前端最新版vue2模块,高频24问

    博 主 初映CY的前说 前端领域 个人信条 想要变成得到 中间还有做到 本文核心 博主收集的关于vue2面试题 目录 vue2面试题 1 route 和 router的区别 2 一个 vue文件由几部分组成 分别什么含义 3 scoped作
  • Vue(7)

    目录 插件 scoped样式 Todo list案例 插件 功能 用于增强Vue 本质 包含install方法的一个对象 install的第一个参数是Vue 第二个以后的参数是插件使用者传递的数据 定义插件 对象 install funct
  • vue 从入门到入土---复习 webpack

    目录 前端工程化 wbepack的基本使用 webpack中的插件 webpack中的loader 打包发布 Socure Map 总结 前端工程化 1 了解前端工程化概念 前端工程化指的是 在企业级的前端项目开发中 把前端所需要的开发工具
  • ant-vue table换页以后选中的数据无法记住前一页已勾选的数据

    ant vue table换页以后选中的数据无法记住前一页已勾选的数据 解决方法 使用组件自带的onSelect事件和onSelectAll事件来记录 HTML Markup
  • SSR是什么?Vue中怎么实现?

    一 是什么 Server Side Rendering 称其为SSR 意为服务端渲染 指由服务侧完成页面的 HTML 结构拼接的页面处理技术 发送到浏览器 然后为其绑定状态与事件 成为完全可交互页面的过程 先来看看Web3个阶段的发展史 传
  • Vue路由中,history和hash两种模式有什么区别?

    前端路由有两种模式 hash 模式和 history 模式 接下来分析这两种模式的实现方式和优缺点 hash 模式 hash 模式是一种把前端路由的路径用井号 拼接在真实 URL 后面的模式 当井号 后面的路径发生变化时 浏览器并不会重新发
  • Vue2 新手上路无处不在的特殊符号,让人傻傻分不清 “:”、“.”、“@”、“#” 、“{{}}“ 、“$“,‘$bus‘,‘$event‘

    背景 刚刚学vue没多久 经常分不清情况什么时候用什么符号 是指令 v bind 的缩写 是修饰符 是指令 v on 的缩写 它用于监听 DOM 事件 是v slot的缩写 插值语法 Vue 实例还暴露了一些有用的实例属性与方法 它们都有前
  • 【Vue介绍】

    Vue js是一套构建用户界面的渐进式框架 Vue 只关注视图层 采用自底向上增量开发的设计 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件 Vue js 使用了基于 HTML 的模板语法 允许声明式地将 DO
  • Vue常用的修饰符有哪些?分别有什么应用场景?

    一 修饰符是什么 在程序世界里 修饰符是用于限定类型以及类型成员的声明的一种符号 在Vue中 修饰符处理了许多DOM事件的细节 让我们不再需要花大量的时间去处理这些烦恼的事情 而能有更多的精力专注于程序的逻辑处理 vue中修饰符分为以下五种
  • elementui的表格排序的组件之问题---条件改变样式消失

    这两天写了一个需求 就是当我改变时间的时候 排序功能消失 这我就想不是很简单吗 但是是我太单纯了 这个是一个后台 肯定会用到element的组件 然后果不其然用的就是element里面的表格排序组件 elementUI table 首先熟悉
  • vue中如果解决列表删除最后一页暂无数据bug

    bug 当删除数据的时候 页码变了但是数据没有变化 页面显示暂无数据 是因为你删除了当前的数据之后瞬间发了一个请求 异步请求请求刷新列表 列表刷新的时候需要传一个当前页 这里的当前页没有改变还是之前的当前页导致数据没有变 解决 就是当前页减
  • vue项目中使用CDN引入

    前言 CDN 内容分发网络 指请求资源的方式 即通过script头去请求对应的脚本资源的一种方式 项目里配置之后不需要通过npm包管理工具去下载配置的包 目的 将引用的外部js css文件剥离开来 不编译到vendor js中 而是用资源的
  • 【vue2】计算属性(computed)与侦听器(watch)详解

    博 主 初映CY的前说 前端领域 个人信条 想要变成得到 中间还有做到 本文核心 计算属性与侦听属性的用法 目录 文末有给大家准备好的Xmind思维导图 一 计算属性computed 默认get 方法 仅是获取值 不仅仅是获取值 还具有修改
  • 安装Node(脚手架)

    目录 一 安装node 脚手架 1 1 配置vue config js 1 2 vue cli3x的目录介绍 1 3 package json 最后 一 安装node 脚手架 从官网直接下载安装即可 自带npm包管理工具 https nod
  • Vue组件间通信方式都有哪些?

    一 组件间通信的概念 组件间通信这个词进行拆分 组件 通信 都知道组件是vue最强大的功能之一 vue中每一个 vue可以视之为一个组件通信指的是发送者通过某种媒体以某种格式来传递信息到收信者以达到某个目的 广义上 任何信息的交通都是通信组
  • 【Vue2】之简单自定义插件开发,含demo

    一个vue2 x的简单插件开发实例 首先创建文件夹和文件 个人习惯把插件都放在src plugins文件夹里 创建本次demo插件目录src plugins demo 以及目录文件 demo index js demo src main j
  • Vue.observable的理解

    一 Observable 是什么 Observable 翻译过来我们可以理解成可观察的 先来看其在Vue中的定义 Vue observable 让一个对象变成响应式数据 Vue 内部会用它来处理 data 函数返回的对象 返回的对象可以直接

随机推荐