使用Vue

时间:2016-11-23 11:53:48

标签: jquery html angularjs vue.js

我是Vue的新手并试图观察它的范例,我查看了页面,做了示例并与Angular,MVC等进行了比较,我非常方便。

我的方案如下。静态登陆 index.html 页面上有一个导航栏。在它下面,为我的视图应用程序标记了一个名为 #vapp 的div。当用户点击不同的菜单时,我希望div vapp 重新填充:

  1. 该特定视图的HTML代码
  2. 将在表格和列表中使用的数据。
  3. 我的方法是将 vapp.data 的值更改为对应于视图中所需的值(使该字段成为我的viewmodel,种类)。但是,我有点卡在路由部分。我是否应该在点击事件中将HTML呈现为Vue?

    也许我受到了Angular的影响,但是我自发地希望在一个单独的HTML文件中看到一个模板,该模板通过管道(推送,渲染 - 无论正确的命名是什么)进入我的 vapp的一部分 div while 同时让它能够访问(并且最好是绑定)Vue对象的 data 字段中提供的数据。

    这是合适的方法吗?或者Vue背后的范例是为每个呈现的“页面”创建和维护一个新的Vue对象吗?

2 个答案:

答案 0 :(得分:1)

康拉德, 我想你正在寻找vue-router。 https://router.vuejs.org/en/

您的导航栏中包含<router-link>个 然后一个<router-view>将替换为routes

中配置的相应组件

vapp<router-view>

每个视图都是单独的VUE文件(组件)。

最好使用webpack-vue-template开发不仅仅是简单的组件。如果你想要路由等,你肯定应该使用webpack模板。 https://github.com/vuejs-templates/webpack

答案 1 :(得分:1)

我从未使用角度,但在Vue中,您可以使用single file componentsvue-router来实施SPA。

方法是让一个页面为所有组件提供服务,每个组件本身可以由多个组件组成。首先,你设置一个像这样的路由器:

  local function envIsAlphaNum(sIn)
    return (string.match(sIn,"[^%w]") == nil) end

然后在你的// import top level components import Foo from './foo.js' import Bar from './bar.js' // Define routes, each route serves up a component const routes = [ { path: '/foo', component: Foo }, { path: '/bar', component: Bar } ] // Create a router const router = new VueRouter({ routes }) // Mount it to your div const app = new Vue({ router }).$mount('#app') 中执行:

HTML

现在,当点击这些链接时,vue将提供<div id="app"> <!-- links you registered earlier --> <p> <router-link to="/foo">Go to Foo</router-link> <router-link to="/bar">Go to Bar</router-link> </p> <!-- All content will be served up here --> <router-view></router-view> </div> Foo

对于提供数据,单个文件组件中的每个组件都是自包含的,因此您将与该组件相关的模板,样式和视图模型(数据)放在一个文件中:

Bar

这些需要使用<template> <div> {{message}} <my-component></my-component> </div> </template> <script> // import components to be used in this component import myComponent from './myComponent' export default{ // register imported components components: { myComponent }, data(){ return { message: 'Foo' } } } </script> webpack等编译。

基本上最后,当用户导航时,路由器会提供一堆自包含的组件,每个组件都包含它需要运行的所有组件。