- <template>
- <view>
- <h1>opition.id</h1>
- <view @tap="totextfun">前往子页面</view>
- </view>
- </template>
- <script>
- export default {
- data() {
- return {
- opition:{
- }
- }
- },
- onShow(){
- //页面跳转回来要执行的事件
- },
- methods: {
- //跳转到子页面
- totextfun(){
- uni.navigateTo({ url: '/pages/text/text1'});
- }
- }
- }
- </script>
- <style>
- </style>
子页面:
- <template>
- <view>
- <view @tap="totextfun">跳转回主页面</view>
- </view>
- </template>
- <script>
- export default {
- data() {
- return {
- }
- },
- methods: {
- //跳转回主页面事件
- totextfun(){
- var pages = getCurrentPages();//当前页
- var beforePage = pages[pages.length - 2];
- var json = {
- id:11
- };
- if(beforePage !=undefined){
- if(beforePage.opition){//判断是否为小程序,小程序的数据都在data里
- beforePage.opition = json;
- }else{
- beforePage.data.opition = json;
- }
- }
- uni.navigateBack();
- }
- }
- }
- </script>
- <style>
- </style>
优缺点:优点是逻辑走通了,功能实现了,而且数据很安全的被传回去了,但缺点也是有的,就是如果在子页面刷新呢,因为获取不到上一级页面,代码会报错(也可以多加个判断来进行处理),但是已经没有返回上一个页面带传值的功能了。
总结:这种方法虽然有缺点,但的确很实用,排除掉页面刷新的情况,简直无懈可击,而且页面刷新的的情况也可以直接调回首页来处理,毕竟你都在子页面刷新了,主页面的东西肯定会没掉,逻辑上已经走不通了。