Vue This指代
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue This指代相关的知识,希望对你有一定的参考价值。
参考技术A 第一个输出英文 hello, 第二个输出中文 ‘你好’说明showMessage1()里面的this指的是window, 而showMessage2()里面的this 指的是vue实例.
created函数为vue实例的钩子方法,它里面的this 指的是vue实例.
对于普通函数(包括匿名函数), this指的是直接的调用者,
在非严格模式下,如果没有直接调用者,this指的是window.
showMessage1()里面setTimeout使用了匿名函数,this 指向window.
showMessage2()里面,箭头函数 => 是没有自己的this, 在它内部使用的this是由他定义的宿主对象决定,.
showMessage2()里面定义的箭头函数宿主对象vue实例,所以它里面使用的this 指向vue 实例.
vue初探
在组件vue文件中变量都是整个作用域,不可使用this。在js文件,this用于指代data中的变量。
一. 环境搭建
1.安装node.js,从node.js官网下载并安装node,安装过程很简单,一路“下一步”就可以了(傻瓜式安装)。安装完成之后,打开命令行工具(win+r,然后输入cmd),输入 node -v,如下图,如果出现相应的版本号,则说明安装成功。
2.安装淘宝镜像。windows下安装。。
linux下安装。。。
- 安装webpack,打开命令行工具输入:npm install webpack -g,安装完成之后输入 webpack -v,如下图,如果出现相应的版本号,则说明安装成功。
- 安装vue-cli脚手架构建工具,打开命令行工具输入:npm install vue-cli -g,安装完成之后输入 vue -V(注意这里是大写的“V”),如下图,如果出现相应的版本号,则说明安装成功。
二. 构建一个axios+java项目
- 在硬盘上找一个文件夹放工程用的。这里有两种方式指定到相关目录:①cd 目录路径 ②如果以安装git的,在相关目录右键选择Git Bash Here
- 安装vue脚手架输入:vue init webpack exprice ,注意这里的“exprice” 是项目的名称可以说是随便的起名,但是需要主要的是“不能用中文”。
$ vue init webpack exprice --------------------- 这个是那个安装vue脚手架的命令
This will install Vue 2.x version of the template. ---------------------这里说明将要创建一个vue 2.x版本的项目
For Vue 1.x use: vue init webpack#1.0 exprice
? Project name (exprice) ---------------------项目名称
? Project name exprice
? Project description (A Vue.js project) ---------------------项目描述
? Project description A Vue.js project
? Author Datura --------------------- 项目创建者
? Author Datura
? Vue build (Use arrow keys)
? Vue build standalone
? Install vue-router? (Y/n) --------------------- 是否安装Vue路由,也就是以后是spa(但页面应用需要的模块)
? Install vue-router? Yes
? Use ESLint to lint your code? (Y/n) n ---------------------是否启用eslint检测规则,这里个人建议选no
? Use ESLint to lint your code? No
? Setup unit tests with Karma + Mocha? (Y/n)
? Setup unit tests with Karma + Mocha? Yes
? Setup e2e tests with Nightwatch? (Y/n)
? Setup e2e tests with Nightwatch? Yes
vue-cli · Generated "exprice".
To get started: --------------------- 这里说明如何启动这个服务
cd exprice
npm install
npm run dev
如下图:
3.cd 命令进入创建的工程目录,首先cd exprice(这里是自己建工程的名字);
4.在package.json文件,加入axios
"dependencies": { "axios": "^0.17.0", "vue": "^2.5.2", "vue-router": "^3.0.1" },
5 . 在config下的index.js配置代理,将proxyTable{}配置为
proxyTable: { /** * npm代理,解决调试接口中,跨域问题 * */ ‘/api‘: { target: ‘http://192.168.1.91:8090‘, // 接口地址 changeOrigin: true, pathRewrite: { ‘^/api‘: ‘‘ } } },
6. 在src下的main.js引入axios,
// The Vue build version to load with the `import` command // (runtime-only or standalone) has been set in webpack.base.conf with an alias. import Vue from ‘vue‘ import App from ‘./App‘ import router from ‘./router‘ Vue.config.productionTip = false; import axios from ‘axios‘; let axiosIns = axios.create({ // 发布 baseURL:‘/‘, // 开发 baseURL: ‘/api/‘, }); Vue.prototype.$http = axiosIns; /* eslint-disable no-new */ new Vue({ el: ‘#app‘, router, template: ‘<App/>‘, components: { App } })
7. 在hello.vue 中添加表单和方法,这样vue前端就配置完了。
<template> <div class="hello"> <input type="text" v-model="tip"/> <input type="button" @click = "aa"/> </div> </template> <script> export default { name: ‘HelloWorld‘, data () { return { msg: ‘Welcome to Your Vue.js App‘, tip :‘‘ } }, methods:{ aa(){ let self = this; this.$http.post(‘/vprocesslogin‘, {tip:self.tip}) .then(function (response) { if (response.data.success) { console.log(response); } }) } } } </script>
8.安装项目依赖:npm install,因为自动构建过程中已存在package.json文件,所以这里直接安装依赖就行。
8. java后台配置
struts配置,写一个jsonaction,添加json拦截器。其他写法保持原ssh框架不变。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <!-- Struts2配置文件的根元素 --> <struts> <package name="struts-demo" extends="struts-main"> <interceptors> <interceptor-stack name="demostack"> <interceptor-ref name="defaultStack" /> <interceptor-ref name="json"/> </interceptor-stack> </interceptors> <action name="vprocesslogin" class="vLoginAction" method="vprocesslogin"> <result type="json" /> <interceptor-ref name="demostack" /> </action> </package> </struts>
这样后台就能收到vue前台提交上来的数据
public String getTip() { return tip; } public void setTip(String tip) { this.tip = tip; } public String getForwardUrl() { return forwardUrl; } public void setForwardUrl(String forwardUrl) { this.forwardUrl = forwardUrl; } public String execute() throws Exception { return SUCCESS; } public void vprocesslogin() throws Exception { System.out.println(tip); System.out.println(tip); tip = "erty"; System.out.println(tip); }
以上是关于Vue This指代的主要内容,如果未能解决你的问题,请参考以下文章