Comments (13)
Yeah, I think this should be changed to something that doesn't conflict with ampersand-state
.
Maybe change it to find
? Sort-of makes it seem like jQuery, but it describes the functionality well.
from ampersand-view.
+1 on find()
It feels like a better name than .get().
from ampersand-view.
We already have precedent for a thing backbone used to have that is easily mixed back in if you are transitioning, or still want it for other reasons https://github.com/whobubble/ampersand-view-jquery-mixin I say rename it and accept mixins w/ open arms.
If it's a querySelector, I'd push for naming the method select
from ampersand-view.
Here's what I propose:
query()
- takes a regular CSS selector, returns first match (even if first match is root element)
queryAll()
- takes regular CSS selector, returns array of all matches (even if that includes root)
queryByHook("hook-name")
- builds a CSS selector for you like this: [data-hook="hook-name"]
then calls query
with that (returns one element).
queryAllByHook("hook-name")
- builds CSS selector in the same way as queryByHook
then calls queryAll.
For those familiar with querySelector
and querySelectorAll
it's a clear mental mapping. Select has other meanings in my mind, and is a character longer. /me shrugs. I feel like query is quite understandable.
A possible, shorter alternative would be to simply use q
. Then it would look like this:
q()
qAll()
qByHook()
qAllByHook()
But, i'm leaning toward the longer version for readability and clarity.
from ampersand-view.
Maybe the *AllByHook
isn't really necessary.
query()
queryAll()
queryHook()
- note that there's no "By"
^ that looks really clean/simple to me.
from ampersand-view.
Looks clean & simple to me too. Don't forget to use the ~=
operator in queryHook()
:)
from ampersand-view.
yeah, good point, should have carried that over from the other discussion.
from ampersand-view.
Why no queryAllHook()
? Seems like it would still come in handy.
from ampersand-view.
@garrettn, yeah i suppose. But it's simply not something i've missed thus far building apps using the current getByRole
.
from ampersand-view.
I personally feel that queryHook
is a little to abstract
this.query
, this.queryAll
read pretty well to me. this.queryHook
feels odd, it's like I'm adding a hook to a query or something. this.queryByHook
seems more clear to me personally.
In context:
this.renderCollection(ItemView, this.collection, this.queryHook('item-list'))
vs
this.renderCollection(ItemView, this.collection, this.queryByHook('item-list'))
from ampersand-view.
+1 agreed
from ampersand-view.
I'm going to merge this and publish as a release candidate so that I can begin to update other modules. If anyone has any pushback on query, queryAll, queryByHook now is the time to make noise.
from ampersand-view.
closed in v7.0.0
published now
from ampersand-view.
Related Issues (20)
- List cdaringe as lead maintainer and add him to core team HOT 6
- deep nested subviews issue of re-rendering HOT 14
- Possible fix to template engines that attempt to copy the getter-laden context from going crazy HOT 3
- $('.className') vs this.queryByHook('hookName') HOT 2
- The ability to extend the declarative style of the subviews is very limited HOT 6
- Using deprecated version of ampersand-state HOT 1
- get-object-path issues + proposal HOT 6
- reset() throwing errors since I build from ES6 HOT 4
- Release ampersand-*-view HOT 1
- Release new version HOT 1
- Make bindings extensible HOT 11
- Enhance docu about _upsertBindings() HOT 4
- _downsertBindings needs to clear the _subviews array
- renderSubview expects subview render method to return subview instance HOT 3
- Possible bug with the auto-generated prepareView() ? HOT 4
- Enchancement bubble subview events
- Enhancement to provide single declarative place for event listeners
- Looking to become maintainer HOT 6
- package-lock.json HOT 1
- NPM Audit HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ampersand-view.