【问题标题】:change page layout on link click vue.js更改链接上的页面布局单击 vue.js
【发布时间】:2020-07-24 10:21:14
【问题描述】:

我正在学习如何使用 vue.js 我有一个共享托管计划,我只能使用 html。我正在使用 axios 和仅充当后端的远程 wordpress 安装来获取我需要的数据。我需要知道的是,如果用户单击链接并且我需要更改页面的布局,因为需要对内容进行不同的呈现,我如何使用 vue 更改 index.html 的 DOM 内容? 看例子:


<div id="vue-app">
  <a href="#">link to layout 2</a>
  <div class="col-12">starting layout </div>
</div>

// after the user click the link (v-on:click) the layout change

<div id="vue-app">
  <a href="#">link to layout 1</a>
// layout change
  <div class="col-6">new layout </div>
  <div class="col-6">new layout </div>
</div>

【问题讨论】:

    标签: javascript html vue.js


    【解决方案1】:

    请阅读Conditional Rendering in Vue.js

    您可以在脚本标签的数据隔间中有一个布尔变量,并在点击时更改它。

    并在标签中添加v-if="your_bool_variable"

    <div id="vue-app" v-if="layout_switch">
      <a href="#">link to layout 2</a>
      <div class="col-12">starting layout </div>
    </div>
    
    // after the user click the link (v-on:click) the layout change
    
    <div id="vue-app" v-else>
      <a href="#">link to layout 1</a>
    // layout change
      <div class="col-6">new layout </div>
      <div class="col-6">new layout </div>
    </div>
    

    @click 事件中取反布尔变量。

    数据可能如下所示:

    <script>
        export default {
            name: "YourComponent",
            data: () => {
                return {
                    layout_switch: true
                }
            },
            methods: {
                changeLayout() {
                    this.layout_switch = !this.layout_switch;
                }
            }
        }
    </script>
    

    【讨论】:

    • 我不需要检查一个值是否为真,我需要导航内容,所以如果用户点击一个链接,整个页面内容需要改变。 vue 路由器可以解决吗?
    • 是的,在这种情况下我肯定会使用 vue-router。如果您启动 vue ui 命令并进入 Web 界面并将其添加到您的项目中,您可以简单地添加插件。
    • 好的。我没有使用cli,我已经从cdn中包含了它,现在我需要了解如何使用它。
    • 在这里完美描述:router.vuejs.org/guide。我建议从一个新项目开始,然后在您的实际项目中实施它。
    • 好的,谢谢。我遇到了一些麻烦。我发布了一个关于 stackoverflow.com/questions/61162050/… 的新问题
    猜你喜欢
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    相关资源
    最近更新 更多