vue watch中如何获取this.$refs.xxx节点

目录
  • watch中获取this.$refs.xxx节点
  • vue常见错误及解决办法
    • 1.在配置路由并引入组件后,报错
    • 2.在组件中的标签和样式中图片路径出错时,报错
    • 3.在组件中标签没有闭合,报错
    • 4.在使用less定义变量时报错
    • 本地开发环境请求服务器接口跨域的问题

watch中获取this.$refs.xxx节点

项目中要在watch中使用refs操作dom对象,因为我们的watch是监听特性 ,会使用时,this.refs是undefined, 所以我们的解决办法是 this.$nextTick()来帮忙解决

这里解释了为什么 watch中无法得到 dom 对象的变化

vue常见错误及解决办法

1.在配置路由并引入组件后,报错

Unknown custom element: <router-link> - did you register the component correctly? For recursive components, make sure to provide the "name" option.

错误原因:vue-router没有注册

解决办法:

//注册插件 *****************非常重要,不能忘记

Vue.use(VueRouter)

2.在组件中的标签和样式中图片路径出错时,报错

Errors while compiling. Reload prevented.

Module not found: Error: Can't resolve './src/assets/img/btn_bg.png' in 'E:\myStudy\vue案例\chexian-spa\src\components'

解决办法:

将图片的路径重新书写

3.在组件中标签没有闭合,报错

Errors while compiling. Reload prevented.

./node_modules/_vue-loader@13.4.0@vue-loader/lib/template-compiler?{"id":"data-v-00822b28","hasScoped":false,"buble":{"transforms":{}}}!./node_modules/_vue-loader@13.4.0@vue-loader/lib/selector.js?type=template&index=0&bustCache!./src/components/BaseProject.vue

(Emitted value instead of an instance of Error)

解决办法:

检查html代码

4.在使用less定义变量时报错

错误原因:必须用分号结尾:@imgUrl:'../../assets/img/';

Compiled with problems:

编译问题

C:\myel\src\views\HomeView.vue

错误出现文件

3:1 error Mixed spaces and tabs no-mixed-spaces-and-tabs

4:1 error Mixed spaces and tabs no-mixed-spaces-and-tabs

第3行的第一个字符

第4函的第一个字符

Mixed spaces and tabs

错误原因:混合的空格与tab

no-mixed-spaces-and-tabs

错误规则: no-mixed-spaces-and-tabs 不准混空格与tab

  • 2 problems (2 errors, 0 warnings)
  • 2个问题(2个错误,0个警告)

Compiled with problems:

编译错误

ERROR in ./src/views/HomeView.vue?

错误出现的位置

Unexpected keyword 'const'. (6:0)

第6行第0个字符有个不应该出现的关键字 const

63 | const user = reactive({ userid: "", pwd: "", code: "" }), | ^ 64 | const rules = reactive({ | ^ 65 | userid: [

第63到64行两个^之间有错误

ERROR in ./src/router/index.ts 10:19-57

错误发生在 ./src/router/index.ts 第10行第19个字符到57字符

Module not found: Error: Can't resolve '../views/admin/AdminVeiw.vue' in 'C:\myel\src\router'

,模块找不的 不能resolve(兑现,发现,解决)../views/admin/AdminVeiw.vue

在C:\myel\src\router

总结:文件../views/admin/AdminVeiw.vue(文件名/路径发生错误)

本地开发环境请求服务器接口跨域的问题

上面的这个报错大家都不会陌生,报错是说没有访问权限(跨域问题)。本地开发项目请求服务器接口的时候,因为客户端的同源策略,导致了跨域的问题。

下面先演示一个没有配置允许本地跨域的的情况:

  

可以看到,此时我们点击获取数据,浏览器提示我们跨域了。所以我们访问不到数据。

那么接下来我们演示设置允许跨域后的数据获取情况:

注意:配置好后一定要关闭原来的server,重新npm run dev启动项目。不然无效。

我们在1出设置了允许本地跨域,在2处,要注意我们访问接口时,写的是/api,此处的/api指代的就是我们要请求的接口域名。

如果我们不想每次接口都带上/api,可以更改axios的默认配置axios.defaults.baseURL = '/api';这样,我们请求接口就可以直接this.$axios.get('app.php?m=App&c=Index&a=index'),很简单有木有。此时如果你在network中查看xhr请求,你会发现显示的是localhost:8080/api的请求地址。

这样没什么大惊小怪的,代理而已:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • vue中$refs的用法及作用详解

    一般来讲,获取DOM元素,需document.querySelector(".input1")获取这个dom节点,然后在获取input1的值. 但是用ref绑定之后,我们就不需要在获取dom节点了,直接在上面的input上绑定input1,然后$refs里面调用就行. 然后在javascript里面这样调用:this.$refs.input1 这样就可以减少获取dom节点的消耗了 用法如下: HTML: <div id="app"> <input

  • 关于vue中ref的使用(this.$refs获取为undefined)

    目录 vue的ref(this.$refs获取为undefined) 1.你在哪里调用,和你调用的对象 2.调用对象是不是数组列表 3.调用对象是否和v-if结合使用 vue的$refs属性几个注意点 1.在vue中获取dom推荐使用$refs来获取 2.如果使用v-for vue的ref(this.$refs获取为undefined) 如果你获取到的总是空的,你注意一下: 1.你在哪里调用,和你调用的对象 试试在mounted()里面调用有效果没有 调用的对象是本来就存在的,还是需要数据渲染之

  • Vue中ref和$refs的介绍以及使用方法示例

    前言 在JavaScript中需要通过document.querySelector("#demo")来获取dom节点,然后再获取这个节点的值.在Vue中,我们不用获取dom节点,元素绑定ref之后,直接通过this.$refs即可调用,这样可以减少获取dom节点的消耗. ref介绍 ref被用来给元素或子组件注册引用信息.引用信息将会注册在父组件的 $refs对象上.如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素:如果用在子组件上,引用就指向该子组件实例 通俗的讲,re

  • vue watch中如何获取this.$refs.xxx节点

    目录 watch中获取this.$refs.xxx节点 vue常见错误及解决办法 1.在配置路由并引入组件后,报错 2.在组件中的标签和样式中图片路径出错时,报错 3.在组件中标签没有闭合,报错 4.在使用less定义变量时报错 本地开发环境请求服务器接口跨域的问题 watch中获取this.$refs.xxx节点 项目中要在watch中使用refs操作dom对象,因为我们的watch是监听特性 ,会使用时,this.refs是undefined, 所以我们的解决办法是 this.$nextTi

  • vue data中如何获取使用store中的变量

    目录 data获取使用store中的变量 无法获取$store中的变量问题 data获取使用store中的变量 我们想使用定义在store中的全局变量,总是获取不到为空或是undefined,其实很简单: 比如我们调用后端接口时需要用到用户id,那么我们首先要获取store中定义的userId 方法如下: 1.这是store中定义的属性(我们获取用户id为例) 2.直接在想要使用的当前页面的computed中进行获取 3.然后就直接可以通过this.userid进行使用,比如我获取完之后为了验证

  • 在vue项目中如何获取视频的时长

    目录 vue获取视频时长 vue-video-player获取播放时间 全局引用 局部引用 html methods 获取播放时间 vue获取视频时长 传入参数为视频文件对象 js的代码如下: getVideoDuration(file) {   var url = URL.createObjectURL(file);   var audioElement = new Audio(url);   var self = this;   var result;   audioElement.addE

  • vue.js中ref和$refs的使用及示例讲解

    关于ref和$refs的用法及讲解,vue.js中文社区( https://cn.vuejs.org/v2/api/#ref )是这么讲解的: ref 被用来给元素或子组件注册引用信息,引用信息将会注册在父组件的 $refs 对象上. 如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素:如果用在子组件上,引用就指向组件: vue.js中文社区文档上的说明已经就比较通俗易懂了,其实我们可以这么理解,ref和$refs其实就是用来获取/操作DOM元素的:类似于jquey中的$(".xxx

  • vue.js中ref及$refs的使用方法解析

    关于ref和$refs的用法及讲解,vue.js中文社区( https://cn.vuejs.org/v2/api/#ref )是这么讲解的: ref 被用来给元素或子组件注册引用信息,引用信息将会注册在父组件的 $refs 对象上. 如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素:如果用在子组件上,引用就指向组件: vue.js中文社区文档上的说明已经就比较通俗易懂了,其实我们可以这么理解,ref和$refs其实就是用来获取/操作DOM元素的:类似于jquey中的$(".xxx

  • Vue 实例中使用$refs的注意事项

    在开发过程中,经常会通过实例的vm.$refs(this.$refs)取得通过ref注册过的组件,并进行相应操作,但存在取不到元素的情况,其根本原因是因为$refs只能取得mounted(渲染)之后的元素. 例如,在这种情况中,若flag从真值切换到假值取不到节点是正常的,因为v-if如果为假值,那么该节点不会被渲染. 但如果从假值切换到真值时,也可能取不到节点,这是因为渲染需要时间,通常可以使用$nextTick()解决. ... <el-table v-if="flag" r

  • 使用this.$nextTick()获取不到数据更新后的this.$refs.xxx.及场景分析

    目录 使用this.$nextTick()获取不到数据更新后的this.$refs.xxx. 补充:详解Vue中this.$nextTick()用法 使用this.$nextTick()获取不到数据更新后的this.$refs.xxx. 今天遇到了这样一个场景,在数据更新之后,使用this.$nextTick(()=>{console.log(this.$refs.xxx)}) 获取不到改dom,但是用setTimeout能够获取到,在此记录一下. 先看代码 <!--这是模板代码,父级用的v-

  • 在Vue组件中获取全局的点击事件方法

    使用场景: 在Vue组件中点击某元素之外的地方移除该元素 需求: 如上图所示,"用户列表"页面有三个Vue组件组成,分别是"菜单组件","导航组件"和"列表组件".其中"列表组件"中包含一个"下拉菜单",当我们点击"下拉菜单"以外的区域隐藏下拉菜单. 解决方法一: 出现"下拉菜单"的同时,建一个透明的遮罩层,然后只有"下拉菜单"

  • 浅谈Vue.js中ref ($refs)用法举例总结

    本文介绍了Vue.js中ref ($refs)用法举例总结,分享给大家,具体如下: 看Vue.js文档中的ref部分,自己总结了下ref的使用方法以便后面查阅. 一.ref使用在外面的组件上 HTML 部分 <div id="ref-outside-component" v-on:click="consoleRef"> <component-father ref="outsideComponentRef"> </co

  • vue项目中jsonp跨域获取qq音乐首页推荐问题

    自己利用业余时间,为了更加数据vue和es6的特性,自学着和做了vue的移动端webapp项目.在项目中也是遇到了很多的问题. 接下来,先说一下怎么实现这个需求,然后再说我遇到的问题,以用来纠错. 第一步,再vue项目中引入 jsonp ,并进行 jsonp 的封装. 使用 npm 引入,输入: npm install jsonp --save 安装好之后可以在自己的 package.json 文件中查看是否有此依赖.如下图所示: 如果有红框中显示的内容,说明安装成功,进入下一步封装: impo

随机推荐