vue2 记录一些之前没怎么学习过的知识~

134 阅读2分钟

vue2修饰符

@keyup.enter.native @click.native.prevent 区别

按键修饰符 @keyup.enter.native (监听enter键) .native - 监听组件根元素的原生事件。(让组件变成像html内置标签那样监听根元素的原生事件,否则组件上使用 v-on 只会监听自定义事件)

场景:当用户在登录页 输入完密码 按enter键也可以发起登录请求

// 没加native修饰符  此时输入完密码按下enter键 没反应并没有发起登录请求
<el-input
  :key="passwordType"
  ref="password"
  v-model="loginForm.password"
  :type="passwordType"
  placeholder="密码"
  name="password"
  tabindex="2"
  auto-complete="on"
  @keyup.enter="handleLogin"
/>

// 加了native修饰符  此时输入完密码按下enter键 成功发起登录请求
<el-input
  :key="passwordType"
  ref="password"
  v-model="loginForm.password"
  :type="passwordType"
  placeholder="密码"
  name="password"
  tabindex="2"
  auto-complete="on"
  @keyup.enter.native="handleLogin"
/>

@click.native.prevent

@click是用在按钮上的语法糖

而@click.native是给vue组件绑定事件时候,必须加上native ,否则会认为监听的是来自Item组件自定义的事件

prevent是用来阻止默认的事件。就相当于…event.preventDefault(),父组件想在子组件上监听自己的click的话,需要加上native修饰符

默认事件就是默认执行的事件,比如 a标签,点击a标签,页面会自动跳转

开发环境和生产环境的跨域问题解决

开发环境:直接在vue.config.js里面配置即可! image.png 生产环境:生产环境表示我们已经开发完成项目,将项目部署到了服务器上,这时已经没有了vue-cli脚手架的辅助了,我们只是把打包好的html+js+css交付运维人员,放到Nginx服务器而已,所以此时需要借助Nginx的反向代理来进行 image.png

vuex

namespaced: true

使用的时候需要加上模块名,为了解决区分不同模块命名问题

image.png

 使用:
 1. import {mapActions} from 'vuex' // 引入mapActions辅助函数
 2. ...mapActions(['user/login'])*  //映射到对应函数
 3. this[user/login](this.loginForm)  // 注意语法