经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Vue.js » 查看文章
vue新手入门出现function () { [native code] }错误的解决方案
来源:jb51  时间:2022/4/11 20:17:05  对本文有异议
目录

出现function () { [native code] }错误的解决

控制台输出错误:

[Vue warn]: Unknown custom element: <p1> - did you register the component correctly? 
For recursive components, make sure to provide the "name" option.

页面提示:

function () { [native code] },无法出现我们想要的内容

在这里插入图片描述

页面代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Title</title>
  6. </head>
  7. <body>
  8. <div id="vue">
  9. <!-- 下面这行代码出错-->
  10.     <p1>{{currentTime1}}</p1></br>
  11. </div>
  12. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  13. <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  14. <script>
  15.     var vm=new Vue({
  16.         el:"#vue",
  17.         data:{
  18.             message:"hello world"
  19.         },
  20.         methods:{
  21.             currentTime1: function () {
  22.               return Date.now();//返回当前时间戳
  23.           }
  24.         }
  25.     });
  26. </script>
  27. </body>
  28. </html>

综上错误,究其原因就是新人对&ldquo;计算属性&rdquo;:computed和&ldquo;事件处理&rdquo;:methods傻傻分不清楚。根据官方文档总结如下:

对于任何复杂逻辑,你都应当使用计算属性。其余可以使用methods处理。

https://cn.vuejs.org/v2/guide/computed.html?

在这里插入图片描述

所以,下次如果再出现function () { [native code] },请使用对应的方法获取值。

这里的methods方法就应该使用currentTime1()调用,计算属性computed就应该使用currentTime2调用。

完整methods方法和计算属性对比运行代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Title</title>
  6. </head>
  7. <body>
  8. <div id="vue">
  9.     <p1>{{currentTime1()}}</p1></br>
  10.     <p1>{{currentTime2}}</p1>
  11. </div>
  12. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  13. <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  14. <script>
  15.     var vm=new Vue({
  16.         el:"#vue",
  17.         data:{
  18.             message:"hello world"
  19.         },
  20.         methods:{
  21.             currentTime1: function () {
  22.               return Date.now();//返回当前时间戳
  23.           }
  24.         },
  25.         computed:{  //存在缓存,建议不经常的变化的在次操作
  26.             currentTime2:function () {
  27.                 return Date.now();
  28.             }
  29.         }
  30.     });
  31. </script>
  32. </body>
  33. </html>

页面效果:


在这里插入图片描述

vue使用过程中遇到的bug及解决

1.用event.target操作当前元素出现bug

改为用event.currentTarget。

2.data数据更新之后渲染页面是异步的

所以要在$nextTick里面,DOM元素更新之后再操作DOM

3.v-cloak解决网络不好时页面显示双花括号{{}}问题

  1. <template>
  2. <div id="app">
  3. ? ? <div v-cloak>{{ item.title }}</div>
  4. </div>
  5. </template>
  1. <style>
  2. ? [v-cloak] {
  3. ? ? ? display: none;
  4. ? }
  5. </style>

4.v-pre跳过组件和子组件的编译过程

比如<span v-pre>{{ instead }}</span>渲染出来的是{{ instead }}字符串,不会再js中找instead这个数据

5.element的navMenu导航菜单的index不能用数字

而要用字符串。

解决办法: :index = "index + &lsquo;&rsquo;"    转化成字符串

6.vue中main.js一引入sass文件就报错

提示路径找不到或者依赖找不到,是因为webpack.base.conf.js中

  1. {
  2. ? ? ? ? test: /\.scss$/,
  3. ? ? ? ? loaders: ["style", "css", "sass"]
  4. ? ? ? }

重复配了,把它删掉就好了(新版的vue-cli默认配置了这个)

7.所有的v-if最好都加上key

否则因为相同标签元素复用会导致意想不到的bug

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号