cmlzf
cmlzf
  • 发布:2019-02-11 10:20
  • 更新:2019-11-11 16:54
  • 阅读:6955

vue文件中,不能使用export default 变量名?

分类:uni-app

在vue中, 如果使用 export default {....} ,是正常的,但采用如下形式
var x = { ....} ;
export defult x;
如果在配置项中.含有componet 组件,则 组件不能在微信小程序和app中无显示,也不提示错误。
但在H5页面中正常。
示例,将 helloapp中的 数字角标 badge.vue 改为如下
<script>
import uniBadge from "../../../components/uni-badge.vue";
var x = {
data() {
return {
title: "badge"
}
},
components: {
uniBadge
}
};
export default x;

// export default {
// data() {
// return {
// title: "badge"
// }
// },
// components: {
// uniBadge
// }
// }
</script>
显示分别如下

2019-02-11 10:20 负责人:无 分享
已邀请:
Trust

Trust - 少说废话

猜测是组件嵌套的问题,text 只能嵌套 text,建议上传个完整的例子上来。

  • cmlzf (作者)

    这个就是用HibuliderX中 的用 Hello uni-app模板生成的官方程序简单修改的。只是将

    badge.vue文件中<script>部分改为了 上面的的代码

    2019-02-11 11:12

  • Trust

    回复 cmlzf:不支持这样写

    2019-02-11 12:00

  • cmlzf (作者)

    @86285

    如果不支持的话,请问有什么好的方法进行代码复用吗?

    比如几个页面的处理方式和显示内容基本一样,只是初始化参数及部分内容略有区别。不能复用的化只能进行代码拷贝,而且修改起来麻烦。

    在HibulderX 1.4版本中,我采用的是 export default 函数名(参数..)的形式来解决这个问题的,但在HibulderX 1.5中,这个方法也无效了。

    2019-02-11 13:17

cmlzf

cmlzf (作者)

@DCloud_UNI_Trust
如果不支持的话,请问有什么好的方法进行代码复用吗?
比如几个页面的处理方式和显示内容基本一样,只是初始化参数及部分内容略有区别。不能复用的化只能进行代码拷贝,而且修改起来麻烦。
在HibulderX 1.4版本中,我采用的是 export default 函数名(参数..)的形式来解决这个问题的,但在HibulderX 1.5中,这个方法也无效了。

  • Trust

    不支持,只能是 export default {},后面看下能不能做下优化。因为要兼容很多平台,所以有些地方处理目前还不是特别灵活。

    2019-02-11 14:51

  • FatDi

    回复 Trust:我也遇到了default的问题,我想把复用的组件集中import在一个vue文件里,其他页面只需要引用这个vue文件就好了,但总是不成功。想用.js的写法,export时不加default,也不行。请问下有什么好的解决办法吗?

    2019-02-11 15:05

  • cmlzf (作者)

    @86285 谢谢你的解答,我是从微信小程序开发直接转到uni-app的,对vue不熟悉。当时对于这个问题就研究了不少时间。非常希望你们团队未来对这个问题能够有好的解决方法(个人感觉应该没问题,毕竟1.4 版本可以变通支持,1.5版本的H5+也支持)。

    个人觉得复用和继承的功能对于稍大一点的项目是很必要的,另外,如果可以自定义的条件编译的话,就更加完美了。

    2019-02-11 15:10

f***@west.cn

f***@west.cn

建议还是支持这个,稍微大点的项目,都有这种需求。比如mixin 可能需要根据不同的规则,定义不同的混入

该问题目前已经被锁定, 无法添加新回复